getAccessToken method
Get a valid access token, refreshing if necessary
Implementation
Future<String> getAccessToken() async {
if (hasValidToken) {
return _currentToken!.accessToken;
}
if (_currentToken?.refreshToken != null) {
try {
final newToken = await _client.refreshToken(
refreshToken: _currentToken!.refreshToken!,
);
setToken(newToken);
return newToken.accessToken;
} catch (e) {
_errorController.add(
e is OAuthError
? e
: OAuthError(
error: 'refresh_failed',
errorDescription: e.toString(),
),
);
rethrow;
}
}
throw OAuthError(
error: 'no_valid_token',
errorDescription: 'No valid token available and no refresh token',
);
}