logout static method

Future<bool> logout({
  1. String? tokenId,
  2. String? redirectUrl,
  3. String? clientId,
  4. String? realm,
  5. String? authServerUrl,
})

Logs the user out, based on the given tokenId. Will automatically grab the one from Session by default Returns true on successful logout

Implementation

static Future<bool> logout(
    {String? tokenId,
    String? redirectUrl,
    String? clientId,
    String? realm,
    String? authServerUrl}) async {
  if (!_checkFields(redirectUrl, clientId, realm, authServerUrl)) {
    return false;
  }

  tokenId ??= Session.tokenResponse?.idToken;

  if (tokenId == null) {
    _logger.error("Don't have a token id!");
    Session.onLogout();
    return false;
  }

  _logger.debug("Discovery URL is: $discoveryUrl");

  EndSessionResponse? endSessionResponse =
      await _appAuth.endSession(EndSessionRequest(
    idTokenHint: tokenId,
    postLogoutRedirectUrl: _redirectUrl,
    discoveryUrl: discoveryUrl,
  ));

  if (endSessionResponse != null) {
    _logger.debug("End Session State: ${endSessionResponse.state}");
    Session.onLogout();
    return true;
  }
  _logger.error("End Session response was null!");
  Session.onLogout();
  return false;
}