loginWithKakaoAccount method
- {List<
Prompt> ? prompts, - List<
String> ? channelPublicIds, - List<
String> ? serviceTerms, - String? loginHint,
- String? nonce}
카카오계정으로 로그인. 기본 웹 브라우저에 있는 카카오계정 cookie 로 사용자를 인증하고 OAuthToken
발급
발급된 토큰은 TokenManagerProvider에 지정된 토큰 저장소에 자동으로 저장됨
동의 화면 요청 시 추가 상호작용을 요청하고자 할 때는 prompts
를 전달
카카오계정 로그인 페이지의 ID에 자동 입력할 이메일 또는 전화번호(+82 00-0000-0000 형식)는 loginHint
에 전달
ID 토큰 재생 공격 방지를 위한 검증 값은 nonce
로 전달. 임의의 문자열, ID 토큰 검증 시 사용
Implementation
Future<OAuthToken> loginWithKakaoAccount({
List<Prompt>? prompts,
List<String>? channelPublicIds,
List<String>? serviceTerms,
String? loginHint,
String? nonce,
}) async {
String codeVerifier = AuthCodeClient.codeVerifier();
final authCode = await AuthCodeClient.instance.authorize(
redirectUri: KakaoSdk.redirectUri,
prompts: prompts,
channelPublicIds: channelPublicIds,
serviceTerms: serviceTerms,
codeVerifier: codeVerifier,
loginHint: loginHint,
nonce: nonce,
webPopupLogin: true,
);
final token = await AuthApi.instance
.issueAccessToken(authCode: authCode, codeVerifier: codeVerifier);
await TokenManagerProvider.instance.manager.setToken(token);
return token;
}