seong

로그인 - Provider, 자동로그인 본문

Flutter/중계 플랫폼 프로젝트

로그인 - Provider, 자동로그인

hyeonseong 2022. 12. 20. 18:10

자동 로그인은 디바이스에 토큰 값이 있다면 서버에 유저 정보를 한번 초기화 시켜준다.

그리고 mainPaged에서 isLogin을 통해서 어디로 이동 할지 정해주었다.

 

Controller 

- 로그인이 성공하면 서버에서 토큰 값을 주는데, 이 값을 디바이스 토큰에 저장해야한다 , 이 부분은 토큰 및 세션은 전역에서 사용해야 하기 때문에 UserServcie로 안적고 LocalService에서 처리 해준다.

- 로그인 이후 Navigator에서 페이지 이동의 Stack관리를 해주어야 하는데 로그인을 하면 이전 페이지에 대한 정보는 어차피 필요 없기 때문에 RemoveUntil를 사용했다.

LocalService

- 디바이스에 토큰을 저장하기 위한 라이브러리 사용 : https://pub.dev/packages/flutter_secure_storage

Storage의 토큰 값을 읽는 방법 : read(key)

Storage의 토큰 쓰는 방법 : write(key,value)

Storage의 토큰 삭제 방법 : delete(key)

- 먼저 디바이스에 저장되어 있는 토큰 값을 읽는다

- 토큰 값이 있다면 토큰 값으로 서버에 세션 초기화를 실행

Service

- 로그인이 성공하면 response에 있던 토큰 값을 secureStorage에 write로 저장해준다.이 때 저장은 Key, value 로 해준다.

UserSession

- 세션에 담기는 정보는 유저의 정보, 토큰 값, 로그인 했는지 여부