/// <summary> /// Creates a logout URL. /// </summary> /// <param name="request">The logout request.</param> /// /// <param name="cancellationToken">A token that can be used to cancel the request</param> /// <returns></returns> public virtual async Task <string> PrepareLogoutAsync(LogoutRequest request = default, CancellationToken cancellationToken = default) { await EnsureConfigurationAsync(cancellationToken); var endpoint = Options.ProviderInformation.EndSessionEndpoint; if (endpoint.IsMissing()) { throw new InvalidOperationException("Discovery document has no end session endpoint"); } return(_authorizeClient.CreateEndSessionUrl(endpoint, request)); }
/// <summary> /// Creates a logout URL. /// </summary> /// <param name="request">The logout request.</param> /// <returns></returns> public virtual async Task<string> PrepareLogoutAsync(LogoutRequest request = null) { if (request == null) request = new LogoutRequest(); await EnsureConfigurationAsync(); var endpoint = _options.ProviderInformation.EndSessionEndpoint; if (endpoint.IsMissing()) { throw new InvalidOperationException("Discovery document has no end session endpoint"); } return _authorizeClient.CreateEndSessionUrl(endpoint, request); }