loginWithKakaoTalk method
카카오톡으로 로그인
카카오톡에 연결된 카카오계정으로 사용자를 인증하고 OAuthToken
발급
발급된 토큰은 TokenManagerProvider에 지정된 토큰 저장소에 자동으로 저장됨
ID 토큰 재생 공격 방지를 위한 검증 값은 nonce
로 전달. 임의의 문자열, ID 토큰 검증 시 사용
Implementation
Future<OAuthToken> loginWithKakaoTalk({
List<String>? channelPublicIds,
List<String>? serviceTerms,
String? nonce,
}) async {
var codeVerifier = AuthCodeClient.codeVerifier();
String? stateToken;
String? redirectUrl;
if (kIsWeb) {
stateToken = generateRandomString(20);
redirectUrl = await AuthCodeClient.instance.platformRedirectUri();
}
final authCode = await AuthCodeClient.instance.authorizeWithTalk(
redirectUri: redirectUrl ?? KakaoSdk.redirectUri,
channelPublicId: channelPublicIds,
serviceTerms: serviceTerms,
codeVerifier: codeVerifier,
nonce: nonce,
stateToken: stateToken,
webPopupLogin: true,
);
final token = await AuthApi.instance.issueAccessToken(
redirectUri: redirectUrl,
authCode: authCode,
codeVerifier: codeVerifier);
await TokenManagerProvider.instance.manager.setToken(token);
return token;
}