getToken method
Implementation
Future<String?> getToken({bool forceRefresh = false}) async {
// Return existing token if authenticated and not forcing refresh
if (!forceRefresh && await isAuthenticated()) {
return _store.authState?.accessToken;
}
// Proceed with token refresh
final version = await _getVersion();
final versionParam = 'Flutter/$version';
try {
if (authState?.refreshToken == null) {
throw KindeError(
code: KindeErrorCode.sessionExpiredOrInvalid.code,
);
}
final data = await _tokenApi.retrieveToken(
versionParam,
_store.authState!.createRequestTokenParam()
..putIfAbsent(_clientIdParamName, () => _config!.authClientId));
_store.authState = AuthState.fromJson(data as Map<String, dynamic>);
_kindeApi.setBearerAuth(_bearerAuth, _store.authState?.accessToken ?? '');
return _store.authState?.accessToken;
} catch (e, st) {
throw KindeError.fromError(e, st);
}
}