🙊 목표
- 카카오 로그인을 flutter앱에 추가 해보자!
🔑 카카오 로그인 추가
kakao_flutter_sdk
flutter pub add kakao_flutter_sdk_user
dependencies:
kakao_flutter_sdk_user: ^1.2.1
📦 추가 순서
1. main.dart 수정
void main() {
KakaoSdk.init(nativeAppKey: '네이티브 앱 키');
...
}
2. 로그인 코드 추가
카카오 로그인 추가 예제
if (await isKakaoTalkInstalled()) {
try {
await UserApi.instance.loginWithKakaoTalk();
print('카카오톡으로 로그인 성공');
} catch (error) {
print('카카오톡으로 로그인 실패 $error');
if (error is PlatformException && error.code == 'CANCELED') {
return;
}
try {
await UserApi.instance.loginWithKakaoAccount();
print('카카오계정으로 로그인 성공');
} catch (error) {
print('카카오계정으로 로그인 실패 $error');
}
}
} else {
try {
await UserApi.instance.loginWithKakaoAccount();
print('카카오계정으로 로그인 성공');
} catch (error) {
print('카카오계정으로 로그인 실패 $error');
}
}
- 위의 코드는 기본적인 카카오 로그인 구현 예제이다.
- 해당 코드가 실행되는 flow는 카카오톡으로 로그인을 시도 한 후, 카카오톡이 설치되어 있지 않는 사용자면 웹으로 리다이렉트 해서 카카오 계정으로 로그인을 시도한다.
3. 유저 정보 받아오기
try {
User user = await UserApi.instance.me();
print('사용자 정보 요청 성공'
'\n회원번호: ${user.id}'
'\n닉네임: ${user.kakaoAccount?.profile?.nickname}'
'\n이메일: ${user.kakaoAccount?.email}');
} catch (error) {
print('사용자 정보 요청 실패 $error');
}
- 해당 코드로 카카오 로그인 시에 동의한 유저의 항목들을 가져올 수 있다.
4. Logout
try {
await UserApi.instance.logout();
print('로그아웃 성공, SDK에서 토큰 삭제');
} catch (error) {
print('로그아웃 실패, SDK에서 토큰 삭제 $error');
}
- 로그아웃은 상당히 간단하게 위의 코드로 해결 가능하다.