certLoginWithKakaoAccount method Null safety

Future<CertTokenInfo> certLoginWithKakaoAccount(
  1. {List<Prompt>? prompts,
  2. List<String>? channelPublicIds,
  3. List<String>? serviceTerms,
  4. String? loginHint,
  5. required String state,
  6. String? nonce}
)

채널 메시지 방식 카카오톡 인증 로그인

기본 브라우저의 카카오계정 쿠키(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.request(
    prompts: prompts,
    state: state,
    channelPublicIds: channelPublicIds,
    serviceTerms: serviceTerms,
    codeVerifier: codeVerifier,
    loginHint: loginHint,
    nonce: nonce,
  );
  final certTokenInfo = await AuthApi.instance.issueAccessTokenWithCert(
      authCode: authCode, codeVerifier: codeVerifier);
  await TokenManagerProvider.instance.manager.setToken(certTokenInfo.token);
  return certTokenInfo;
}