loginWithKakaoAccount method

Future<OAuthToken> loginWithKakaoAccount(
  1. {List<Prompt>? prompts,
  2. List<String>? channelPublicIds,
  3. List<String>? serviceTerms,
  4. String? loginHint,
  5. 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;
}