[Flutter] naver login 추가(2)

saewoohan·2023년 8월 17일
1

Flutter

목록 보기
9/12
post-thumbnail

🙊 목표

  • 네이버 로그인을 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');
}
  • 로그아웃은 상당히 간단하게 위의 코드로 해결 가능하다.

1개의 댓글

comment-user-thumbnail
2023년 8월 17일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기