certLoginWithKakaoAccount method Null safety
채널 메시지 방식 카카오톡 인증 로그인
기본 브라우저의 카카오계정 쿠키(cookie)로 사용자 인증 후, 카카오계정에 연결된 카카오톡으로 카카오톡 인증 로그인을 요청하는 채널 메시지 발송
카카오톡의 채널 메시지를 통해 동의 및 전자서명을 거쳐 CertTokenInfo
반환
동의 화면 요청 시 추가 상호작용을 요청하고자 할 때는 prompts
전달, 사용할 수 있는 옵션의 종류는 Prompt 참고
카카오계정 로그인 페이지의 ID에 자동 입력할 이메일 또는 전화번호(+82 00-0000-0000 형식)는 loginHint
에 전달
ID 토큰 재생 공격 방지를 위한 검증 값은 nonce
로 전달. 임의의 문자열, ID 토큰 검증 시 사용
전자서명 원문은 state
로 전달
Implementation
Future<CertTokenInfo> certLoginWithKakaoAccount({
List<Prompt>? prompts,
List<String>? channelPublicIds,
List<String>? serviceTerms,
String? loginHint,
required String state,
String? nonce,
}) async {
var codeVerifier = AuthCodeClient.codeVerifier();
final authCode = await AuthCodeClient.instance.authorize(
prompts: prompts,
state: state,
channelPublicIds: channelPublicIds,
serviceTerms: serviceTerms,
codeVerifier: codeVerifier,
loginHint: loginHint,
nonce: nonce,
webPopupLogin: true,
);
final certTokenInfo = await AuthApi.instance.issueAccessTokenWithCert(
authCode: authCode, codeVerifier: codeVerifier);
await TokenManagerProvider.instance.manager.setToken(certTokenInfo.token);
return certTokenInfo;
}