getToken method

Future<String?> getToken()

Implementation

Future<String?> getToken() async {
  if (await isAuthenticated()) {
    return _store.authState?.accessToken;
  }
  final version = await _getVersion();
  final versionParam = 'Flutter/$version';
  try {
    if (authState?.refreshToken == null) {
      throw const KindeError(
        code: KindeErrorCode.sessionExpiredOrInvalid,
      );
    }
    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);
  }
}