inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

RefreshToken 만료되면 로그아웃

리프레시 토큰이 만료될 때 AlertDialog를 그리고 싶습니다.

143

Sungmin Oh

작성한 질문수 4

0

리프레시 토큰이 만료될 때 바로 login screen으로 이동하는 것이 아니라 다이얼로그를 띄운 후 확인 버튼을 누르면 화면 이동을 하고 싶은데 이 showDialog를 어디서 해야 할지 난관에 빠졌습니다.

 

현재는 리프레시가 만료되면

dio interceptor에서 authProvider의 logout() 을 통해

userMeProvider의 logout()을 호출해 state를 null로 만들고,

goRouter가 state가 null이면 바로 로그인 스크린으로 redirect 시키고 있는데

이 흐름이 뷰에서 이루어지는 것이 아니라서 context가 필요한 showDialog를 어느 부분에서 구현해야 할지 감이 안 잡힙니다.

state를 null로 만들기 전에 다이얼로그를 띄우려면
AuthProvider에서 userMeProvider의 logout를 호출하기 전에 실행되어야 할 것 같기도 한데

 logout() {
    // showDialog()???
    ref.read(userMeProvider.notifier).logout();
  }

결국 view단에서 호출하는 것이 아니기 때문에 context를 얻어올 방법이 떠오르지 않네요...

flutter 하이브리드-앱

답변 1

0

코드팩토리

안녕하세요!

showDialog는 UI에서 구현하는게 맞습니다.

상태관리를 하나 따서 만료가 될때마다 시그널을 주고

해당 시그널을 받아서 다이아로그를 보여주면 될 것 같습니다.

context를 UI 외부로 전달하는건 추천드리지 않습니다.

다만 보통 토큰 만료를 사용자에게 알려주진 않습니다.

감사합니다!

Isar 마지막 업데이트는 2년전입니다.

0

34

0

FlutterSecureStorage 질문

0

33

0

Dio onError Interceptor 만드는 부분에 질문이 있습니다.

0

80

2

관리자 기능에 대한 질문

0

100

2

part 'restaurant_model.g.dart';

0

93

1

36강. dio 인터셉터에 storage를 전달하는 코드가 이해 안되는데요. 도움 부탁드립니다.

0

56

2

2번 반환 상황 관련 질문

0

63

2

riverpod 3.0

0

143

2

Asset folder??

0

85

2

디자이너와 협업 시 프레임 크기 설정 관련 질문

0

117

2

FutureProvider, StateNotifierProvider 선택 기준

0

71

2

컴포넌트 모델화

0

66

2

쿼리 파라미터

0

86

2

화면 안보임

0

72

2

PaginationListView

0

55

1

강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.

0

104

2

프로토타입이미지

0

63

2

여러 객체를 상태 관리하는 방법에 대한 질문

0

86

2

장바구니 결제하기 응답이 500이 옵니다.

0

106

2

removeFromBasket에서 await patchBasket()을 마지막에 하면 에러나는거 아닌가요?

0

68

2

이 두가지는 완전히 동일한 기능인가요?

0

107

3

내부 코드를 작성하지 않은 CursorPaginationLoading가 어떻게 로딩상태를 갖는지 잘 모르겠습니다...

0

79

2

_SplashScreenState에서 storage를 late로 호출해서 한번만 불러와도 되나요?

0

88

2

코딩 작성 순서 관련 질문

0

88

2