Table of Contents

Class AuthenticationApiClient

Namespace
Auth0.AuthenticationApi
Assembly
Auth0.AuthenticationApi.dll

Client for the Auth0 Authentication API.

public class AuthenticationApiClient : IAuthenticationApiClient, IDisposable
Inheritance
AuthenticationApiClient
Implements
Inherited Members
Extension Methods

Remarks

Full documentation on the Auth0 Authentication API is available at https://auth0.com/docs/api/authentication

Constructors

AuthenticationApiClient(string, IAuthenticationConnection)

Initializes a new instance of the AuthenticationApiClient class.

public AuthenticationApiClient(string domain, IAuthenticationConnection connection = null)

Parameters

domain string

Your Auth0 domain name, e.g. tenant.auth0.com.

connection IAuthenticationConnection

Optional IAuthenticationConnection used to influence connection behavior. Defaults to a freshly created HttpClientAuthenticationConnection that uses a single HttpClient.

Remarks

To use a custom HttpClient or HttpMessageHandler create a HttpClientAuthenticationConnection passing that into the constructor. e.g.

var client = new AuthenticationApiClient(domain, new HttpClientAuthenticationConnection(myHttpClient));
or
var client = new AuthenticationApiClient(domain, new HttpClientAuthenticationConnection(myHttpMessageHandler));
or

AuthenticationApiClient(Uri, IAuthenticationConnection)

Initializes a new instance of the AuthenticationApiClient class.

public AuthenticationApiClient(Uri baseUri, IAuthenticationConnection connection = null)

Parameters

baseUri Uri

Your Auth0 domain URI, e.g. https://tenant.auth0.com

connection IAuthenticationConnection

Optional IAuthenticationConnection used to influence connection behavior. Defaults to a freshly created HttpClientAuthenticationConnection that uses a single HttpClient.

Remarks

To use a custom HttpClient or HttpMessageHandler create a HttpClientAuthenticationConnection passing that into the constructor. e.g.

var client = new AuthenticationApiClient(baseUri, new HttpClientAuthenticationConnection(myHttpClient));
or
var client = new AuthenticationApiClient(baseUri, new HttpClientAuthenticationConnection(myHttpMessageHandler));
or

Fields

connection

protected readonly IAuthenticationConnection connection

Field Value

IAuthenticationConnection

Properties

BaseUri

Base URI that will be used for all the requests.

public Uri BaseUri { get; }

Property Value

Uri

Methods

ChangePasswordAsync(ChangePasswordRequest, CancellationToken)

Requests a password change email for a given email address and connection.

public Task<string> ChangePasswordAsync(ChangePasswordRequest request, CancellationToken cancellationToken = default)

Parameters

request ChangePasswordRequest

ChangePasswordRequest specifying the user, connection and optional client details.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<string>

Task representing the async operation containing either the JSON error response or the plain text success message response.

Dispose()

Disposes of any owned disposable resources such as a IAuthenticationConnection.

public void Dispose()

Dispose(bool)

Disposes of any owned disposable resources such as a IAuthenticationConnection.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Whether we are actually disposing (true) or not (false).

GetImpersonationUrlAsync(ImpersonationRequest, CancellationToken)

Obtains a one-time link that can be used to log in as a specific user.

public Task<Uri> GetImpersonationUrlAsync(ImpersonationRequest request, CancellationToken cancellationToken = default)

Parameters

request ImpersonationRequest

The ImpersonationRequest containing the details of the user to impersonate.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<Uri>

Task which can be used to sign in as the specified user.

Remarks

This feature has been deprecated and will be removed from Auth0 and this library in a future release.

GetTokenAsync(AuthorizationCodePkceTokenRequest, CancellationToken)

Exchanges an Authorization Code using PKCE for an Access Token.

public Task<AccessTokenResponse> GetTokenAsync(AuthorizationCodePkceTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request AuthorizationCodePkceTokenRequest

AuthorizationCodePkceTokenRequest containing Authorization Code and PKCE details.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(AuthorizationCodeTokenRequest, CancellationToken)

Exchanges an Authorization Code for an Access Token.

public Task<AccessTokenResponse> GetTokenAsync(AuthorizationCodeTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request AuthorizationCodeTokenRequest

AuthorizationCodeTokenRequest containing Authorization Code details.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(ClientCredentialsTokenRequest, CancellationToken)

Requests an Access Token using the Client Credentials Grant flow.

public Task<AccessTokenResponse> GetTokenAsync(ClientCredentialsTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request ClientCredentialsTokenRequest

ClientCredentialsTokenRequest containing client and audience details of the request.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(DeviceCodeTokenRequest, CancellationToken)

Requests an Access Token using the Device Authorization flow

public Task<AccessTokenResponse> GetTokenAsync(DeviceCodeTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request DeviceCodeTokenRequest

DeviceCodeTokenRequest containing request details to exchange a device code.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

Remarks

This must be polled while the user is completing their part of the flow at an interval no more frequent than that returned by StartDeviceFlowAsync(DeviceCodeRequest, CancellationToken).

GetTokenAsync(PasswordlessEmailTokenRequest, CancellationToken)

Requests an Access Token using the Passwordless flow through email.

public Task<AccessTokenResponse> GetTokenAsync(PasswordlessEmailTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request PasswordlessEmailTokenRequest

PasswordlessEmailTokenRequest containing request details to exchange a one time password received through email.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(PasswordlessSmsTokenRequest, CancellationToken)

Requests an Access Token using the Passwordless flow through SMS.

public Task<AccessTokenResponse> GetTokenAsync(PasswordlessSmsTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request PasswordlessSmsTokenRequest

PasswordlessSmsTokenRequest containing request details to exchange a one time password received through SMS.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(RefreshTokenRequest, CancellationToken)

Refreshes all tokens by way of the the Refresh Token obtained during authorization.

public Task<AccessTokenResponse> GetTokenAsync(RefreshTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request RefreshTokenRequest

RefreshTokenRequest containing Refresh Token and associated parameters.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

GetTokenAsync(ResourceOwnerTokenRequest, CancellationToken)

Performs authentication by providing user-supplied information in a ResourceOwnerTokenRequest.

public Task<AccessTokenResponse> GetTokenAsync(ResourceOwnerTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request ResourceOwnerTokenRequest

ResourceOwnerTokenRequest containing information regarding the username, password etc.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<AccessTokenResponse>

Task representing the async operation containing a AccessTokenResponse with the requested tokens.

Remarks

The grant_type parameter required by the /oauth/token endpoint will automatically be inferred from the request parameter. If no Realm was specified, then the grant_type will be set to "password". If a Realm was specified, then the grant_type will be set to "http://auth0.com/oauth/grant-type/password-realm"

GetUserInfoAsync(string, CancellationToken)

Returns user information based on the access token that was obtained during login.

public Task<UserInfo> GetUserInfoAsync(string accessToken, CancellationToken cancellationToken = default)

Parameters

accessToken string

Access token used to obtain the user information.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<UserInfo>

Task representing the async operation containing the UserInfo requested..

Remarks

Information included in the response depends on the scopes initially granted.

PushedAuthorizationRequestAsync(PushedAuthorizationRequest, CancellationToken)

Starts a new Pushed Authorization Request flow.

public Task<PushedAuthorizationRequestResponse> PushedAuthorizationRequestAsync(PushedAuthorizationRequest request, CancellationToken cancellationToken = default)

Parameters

request PushedAuthorizationRequest

PushedAuthorizationRequest containing information to start the Pushed Authorization Request.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<PushedAuthorizationRequestResponse>

Task representing the async operation containing a PushedAuthorizationRequestResponse with the details of the response.

RevokeRefreshTokenAsync(RevokeRefreshTokenRequest, CancellationToken)

Revokes refresh token provided in request.

public Task RevokeRefreshTokenAsync(RevokeRefreshTokenRequest request, CancellationToken cancellationToken = default)

Parameters

request RevokeRefreshTokenRequest

RevokeRefreshTokenRequest containing Refresh Token and associated parameters.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task

Task representing the async operation.

SignupUserAsync(SignupUserRequest, CancellationToken)

Creates a new user given the user details specified.

public Task<SignupUserResponse> SignupUserAsync(SignupUserRequest request, CancellationToken cancellationToken = default)

Parameters

request SignupUserRequest

SignupUserRequest containing information of the user to sign up.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<SignupUserResponse>

Task representing the async operation containing a SignupUserResponse with the information of the signed up user.

StartDeviceFlowAsync(DeviceCodeRequest, CancellationToken)

Starts a new Device Authorization flow

public Task<DeviceCodeResponse> StartDeviceFlowAsync(DeviceCodeRequest request, CancellationToken cancellationToken = default)

Parameters

request DeviceCodeRequest

DeviceCodeRequest containing client, scope and audience

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<DeviceCodeResponse>

Task representing the async operation containing a DeviceCodeResponse with the details of the request.

StartPasswordlessEmailFlowAsync(PasswordlessEmailRequest, CancellationToken)

Starts a new Passwordless email flow.

public Task<PasswordlessEmailResponse> StartPasswordlessEmailFlowAsync(PasswordlessEmailRequest request, CancellationToken cancellationToken = default)

Parameters

request PasswordlessEmailRequest

PasswordlessEmailRequest containing details about the Passwordless email flow to start.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<PasswordlessEmailResponse>

Task representing the async operation containing a PasswordlessEmailResponse with the information of the signed up user.

StartPasswordlessSmsFlowAsync(PasswordlessSmsRequest, CancellationToken)

Starts a new Passwordless SMS flow.

public Task<PasswordlessSmsResponse> StartPasswordlessSmsFlowAsync(PasswordlessSmsRequest request, CancellationToken cancellationToken = default)

Parameters

request PasswordlessSmsRequest

PasswordlessSmsRequest containing details about the Passwordless SMS flow to start.

cancellationToken CancellationToken

The cancellation token to cancel operation.

Returns

Task<PasswordlessSmsResponse>

Task representing the async operation containing a PasswordlessSmsResponse with the details of the request.