loginWithNewScopes method Null safety

Future<OAuthToken> loginWithNewScopes(
  1. List<String> scopes,
  2. {String? nonce}
)

사용자가 아직 동의하지 않은 개인정보 및 접근권한 동의 항목에 대하여 동의를 요청하는 동의 화면을 출력하고, 사용자 동의 시 동의항목이 업데이트 된 OAuthToken 발급

발급된 토큰은 TokenManagerProvider에 지정된 토큰 저장소에 자동으로 저장됨

scopes로 추가로 동의 받고자 하는 동의 항목 ID 목록을 전달함 카카오 디벨로퍼스 동의 항목 설정 화면에서 확인 가능 ID 토큰 재생 공격 방지를 위한 검증 값은 nonce로 전달. 임의의 문자열, ID 토큰 검증 시 사용

Implementation

Future<OAuthToken> loginWithNewScopes(List<String> scopes,
    {String? nonce}) async {
  String codeVerifier = AuthCodeClient.codeVerifier();
  final authCode = await AuthCodeClient.instance.requestWithAgt(
      scopes: scopes, codeVerifier: codeVerifier, nonce: nonce);
  final token = await AuthApi.instance
      .issueAccessToken(authCode: authCode, codeVerifier: codeVerifier);
  await TokenManagerProvider.instance.manager.setToken(token);
  return token;
}