인프런 커뮤니티 질문&답변

FlowerRoad T님의 프로필 이미지
FlowerRoad T

작성한 질문수

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

Restaurant Pagination 요청해보기

[Restaurant Pagination 요청해보기] DioError [DioErrorType.response]: Http status error [401]가 나옵니다.

작성

·

449

·

수정됨

0

void checkToken() async {
  final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY);
  final accessToken = await storage.read(key: ACCESS_TOKEN_KEY);

  final dio = Dio();

  try {
    final resp = await dio.post(
      'http://$ip/auth/token',
      options: Options(headers: {'authorization': 'Bearer $refreshToken'}),
    );

    await storage.write(
        key: ACCESS_TOKEN_KEY, value: resp.data['accessToken']);

    Navigator.of(context).pushAndRemoveUntil(
        MaterialPageRoute(builder: (_) => RootTab()), (route) => false);
  } catch (e) {
    Navigator.of(context).pushAndRemoveUntil(
        MaterialPageRoute(builder: (_) => LoginScreen()), (route) => false);
  }
}

 토큰값을 갱신하도록 수정하는 부분에서 토큰값을 갱신했는데 관련로직에서 문제가 있는거같습니다.

검색결과 저랑 같은문제 겪는분이 계신거같은데 챗지피티 열심히돌려도 해결책을 결국 못찾아서 질문남깁니다 ㅠㅠ

https://github.com/hottunes/hukuoka_eat.git

 

flutter: DioError [DioErrorType.response]: Http status error [401]

Source stack:

#0 DioMixin.fetch (package:dio/src/dio_mixin.dart:488:35)

#1 DioMixin.request (package:dio/src/dio_mixin.dart:483:12)

#2 DioMixin.get (package:dio/src/dio_mixin.dart:61:12)

#3 RestaurantScreen.paginateRestaurant (package:hukuoka_eat/restaurant/view/restaurant_screen.dart:14:28)

<asynchronous suspension>

#4 FutureBuilderState.subscribe.<anonymous closure> (package:flutter/src/widgets/async.dart:624:31)

<asynchronous suspension>

flutter: null

답변 5

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

귀찮으실까봐 아래에 해결법을 남겨두겠습니다.

하지만 너무 쉬운 버그라 직접 찾아보셨으면 합니다.

힌트) 서버에서 오는 요청을 출력해보세요.

감사합니다!

 

아래로 쭉 스크롤 하시면 해결법 볼 수 있습니다. 근데 안보시는걸 추천드려요

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

서버 요청에서 오는 refresh token의 키값은 refreshToken입니다. refresh_token이 아닙니다.

access token또한 마찬가지입니다. camel case를 snake case로 작성하셨습니다.

FlowerRoad T님의 프로필 이미지
FlowerRoad T
질문자

앗 이렇게 쉬운버그를 혼자서 몇시간동안 못고치다니 부끄럽네요...ㅠㅠ 감사합니다!!

0

FlowerRoad T님의 프로필 이미지
FlowerRoad T
질문자

앗 제가 깃허브가 서툴러서 퍼블릭설정을 안했습니다... 공개전환했습니다! 잘부탁드립니다.

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

image공유해주신 레포지토리를 접근할 수 없습니다. 다시 공유 부탁드립니다.

0

FlowerRoad T님의 프로필 이미지
FlowerRoad T
질문자

다음수업 듣고싶어서 오매불망 기다리고있습니다 잘부탁드립니다 ㅠ.ㅠ

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

혹시 이미 질문 답변 받으신분 맞나요?

감사합니다!

FlowerRoad T님의 프로필 이미지
FlowerRoad T
질문자

아뇨, 이번이 처음입니다! 다른분하고 같은곳에서 막힌거같습니다. 감사합니다.

FlowerRoad T님의 프로필 이미지
FlowerRoad T

작성한 질문수

질문하기