refreshToken method

Future<OAuthToken> refreshToken(
  1. {OAuthToken? oldToken,
  2. String? redirectUri,
  3. String? appKey}
)

기존 토큰(oldToken)을 갱신합니다.

Implementation

Future<OAuthToken> refreshToken({
  OAuthToken? oldToken,
  String? redirectUri,
  String? appKey,
}) async {
  var token = oldToken ?? await _tokenManagerProvider.manager.getToken();

  if (token == null || token.refreshToken == null) {
    throw KakaoClientException(
      ClientErrorCause.tokenNotFound,
      'Refresh token not found. You must login first.',
    );
  }

  final data = {
    Constants.refreshToken: token.refreshToken,
    Constants.grantType: Constants.refreshToken,
    Constants.clientId: appKey ?? KakaoSdk.appKey,
    Constants.redirectUri: redirectUri ?? await _platformRedirectUri(),
    ...await _platformData()
  };
  final newToken = await _issueAccessToken(data, oldToken: oldToken);
  await _tokenManagerProvider.manager.setToken(newToken);
  return newToken;
}