Class PkceAuthenticator
An authenticator implementation that provides authentication through PKCE (Proof Key Code Exchange) standards.
Inherited Members
Namespace: Unity.Cloud.Identity
Syntax
public class PkceAuthenticator : IUrlRedirectionAuthenticator, IAuthenticator, IAccessTokenProvider, IAuthenticationStateProvider, IDisposable
Constructors
PkceAuthenticator(IAuthenticationPlatformSupport, IHttpClient, IAppIdProvider, IAppNameProvider)
Builds a PkceAuthenticator that uses the standard Proof Key Code Exchange (PKCE) authentication flow using built-in PkceRequestHandler and PkceConfigurationProvider.
Declaration
public PkceAuthenticator(IAuthenticationPlatformSupport authenticationPlatformSupport, IHttpClient httpClient, IAppIdProvider appIdProvider, IAppNameProvider appNameProvider)
Parameters
Type | Name | Description |
---|---|---|
IAuthenticationPlatformSupport | authenticationPlatformSupport | An IAuthenticationPlatformSupport required to handle platform-specific features in the authentication flow. |
IHttpClient | httpClient | An IHttpClient to reach cloud endpoints in the authentication flow. |
IAppIdProvider | appIdProvider | An IAppIdProvider to inject the app identifier required on App settings cloud endpoints. |
IAppNameProvider | appNameProvider | An IAppNameProvider to build the unique uri scheme used to bind the app to the browser response in a login operation. |
PkceAuthenticator(IAuthenticationPlatformSupport, IHttpClient, IPkceRequestHandler, IPkceConfigurationProvider)
Builds a PkceAuthenticator that uses the standard Proof Key Code Exchange (PKCE) authentication flow using custom IPkceRequestHandler and IPkceConfigurationProvider.
Declaration
public PkceAuthenticator(IAuthenticationPlatformSupport authenticationPlatformSupport, IHttpClient httpClient, IPkceRequestHandler pkceRequestHandler, IPkceConfigurationProvider pkceConfigurationProvider)
Parameters
Type | Name | Description |
---|---|---|
IAuthenticationPlatformSupport | authenticationPlatformSupport | An IAuthenticationPlatformSupport required to handle platform-specific features in the authentication flow. |
IHttpClient | httpClient | An IHttpClient to reach cloud endpoints in the authentication flow. |
IPkceRequestHandler | pkceRequestHandler | An IPkceRequestHandler to customize http requests used in the authentication flow. |
IPkceConfigurationProvider | pkceConfigurationProvider | An alternate IPkceConfigurationProvider to override the built-in one. |
Properties
AuthenticationState
Holds the current AuthenticationState
.
Declaration
public AuthenticationState AuthenticationState { get; }
Property Value
Type | Description |
---|---|
AuthenticationState |
Implements
Methods
CancelLogin()
Cancels the awaiting login operation.
Declaration
public void CancelLogin()
Implements
Exceptions
Type | Condition |
---|---|
InvalidOperationException |
Dispose()
Ensure disposal of any IDisposable references.
Declaration
public void Dispose()
Implements
Dispose(Boolean)
Ensure internal disposal of any IDisposable references.
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type | Name | Description |
---|---|---|
Boolean | disposing | Dispose pattern boolean value received from public Dispose method. |
GetAccessTokenAsync()
Declaration
public Task<string> GetAccessTokenAsync()
Returns
Type | Description |
---|---|
Task<String> |
Implements
HasValidPreconditionsAsync()
Indicates if the IAuthenticator
has valid preconditions to provide authentication in the current execution context.
Declaration
public Task<bool> HasValidPreconditionsAsync()
Returns
Type | Description |
---|---|
Task<Boolean> | A task that when completed indicates if the |
Implements
InitializeAsync()
A task to initialize the AuthenticationState from either cache or direct injection value.
Declaration
public async Task InitializeAsync()
Returns
Type | Description |
---|---|
Task |
Implements
LoginAsync()
Performs a login operation.
Declaration
public async Task LoginAsync()
Returns
Type | Description |
---|---|
Task | A task. |
Implements
Exceptions
Type | Condition |
---|---|
InvalidOperationException | |
AuthenticationFailedException |
LogoutAsync(Boolean)
Performs a logout operation.
Declaration
public async Task LogoutAsync(bool clearBrowserCache = false)
Parameters
Type | Name | Description |
---|---|---|
Boolean | clearBrowserCache | An optional boolean value that, if set to true, triggers a navigation to the OS default browser to clear any cached session. |
Returns
Type | Description |
---|---|
Task | A task. |
Implements
Remarks
A logout operation clears the user session in the application only. Unless the user manually clears the session in the browser that is used for authentication, a user can get automatically logged in again from cached values, without entering any credentials. Use the clearBrowserCache boolean to also clear the session in the browser to prevent automatic login from a cached session.
Exceptions
Type | Condition |
---|---|
InvalidOperationException |
Events
AuthenticationStateChanged
Triggers when the AuthenticationState of the current user changes.
Declaration
public event Action<AuthenticationState> AuthenticationStateChanged
Event Type
Type | Description |
---|---|
Action<AuthenticationState> |
Implements
Remarks
Subscribers of this event should restrict or allow access to available resources and features based on the returned value.