# 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;
    }