refreshAccessToken method
Future<void>
refreshAccessToken()
Implementation
@override
Future<void> refreshAccessToken() async {
final refreshToken = _refreshToken;
if (refreshToken == null) {
await _clearSession(SessionStateChangeReason.noToken);
return;
}
String? deviceSecret = await _sharedStorage.getDeviceSecret(name);
final xDeviceInfo = await _getXDeviceInfo();
final tokenRequest = OIDCTokenRequest(
grantType: GrantType.refreshToken,
clientID: clientID,
refreshToken: refreshToken,
xDeviceInfo: xDeviceInfo,
deviceSecret: deviceSecret,
);
try {
final tokenResponse = await _apiClient.sendTokenRequest(tokenRequest);
await _persistTokenResponse(
tokenResponse, SessionStateChangeReason.foundToken);
} catch (e) {
await _handleInvalidGrantException(e);
if (e is OAuthException && e.error == "invalid_grant") {
return;
}
rethrow;
}
}