🙊 목표
- 네이버 로그인을 flutter앱에 추가 해보자!
🔑 카카오 로그인 추가
flutter_naver_login
- 해당 패키지를 다운 받는다. 패키지가 너무나도 잘되어 있기에 따로 flutter 내부에서 설정할 필요없이 제공하는 method로 간편하게 로그인이 사용 가능하다.
flutter pub add flutter_naver_login
dependencies:
flutter_naver_login: ^1.8.0
📦 사용법
1. Login
void _naverLogin() async{
try {
final NaverLoginResult res = await FlutterNaverLogin.logIn();
} catch (error) {
print(error);
}
}
- 위의 코드가 naver login을 사용하기 위한 코드다. 사용 하던 도중 한가지 문제점이 있었는데, 만약 사용자가 고의적으로 로그인 진행 화면에서 취소를 한다면 무한 로딩이 되는 문제였다.
- 이를 해결하기 위해 나는 timeout을 사용하여 예외처리 해주었다.
final NaverLoginResult? result = await FlutterNaverLogin.logIn().timeout(
Duration(seconds: 10),
onTimeout: () => null as NaverLoginResult);
- 10초 동안에도 logIn() 함수에서 응답이 없을 시 null을 return하는 코드이다.
2. 유저 정보 받아오기
void _naverLogin() async{
try{
final NaverLoginResult res = await FlutterNaverLogin.logIn();
print('accessToken = ${res.accessToken}');
print('id = ${res.account.id}');
print('email = ${res.account.email}');
print('name = ${res.account.name}');
} catch(error){
print(error);
}
}
- 유저 정보도 간단하게 logIn 함수의 return 값인 NaverLoginResult 객체를 사용해서 접근 할 수 있다.
3. Logout
try {
await FlutterNaverLogin.logOut();
} catch (error) {
print('로그아웃 실패, $error');
}
- 로그아웃은 상당히 간단하게 위의 코드로 해결 가능하다.
좋은 정보 얻어갑니다, 감사합니다.