UniWebViewAuthenticationFlowDiscord
Summary
A predefined authentication flow for Discord.
This implementation follows the flow described here.
See the OAuth 2.0 Support for a more detailed guide of authentication in UniWebView.
To allow the Discord flow working, at least you need these steps:
- Setting
Client Id
,Client Secret
andRedirect Uri
in theUniWebViewAuthenticationFlowDiscord
inspector. - Setting
scope
and at least containsidentify
in theUniWebViewAuthenticationFlowDiscord
inspector. - Setting the
Auth Callbacks Urls
containingRedirect Uri
inUniWebView
preference panel.
Properties Summary
The client ID of your Discord application. | |
The client secret of your Discord application. | |
The redirect URI of this Discord application. | |
The scope string of all your required scopes. | |
Optional to control this flow's behaviour. | |
Whether to enable PKCE when performing authentication. | |
Whether to enable the state verification. | |
The additional query arguments that are used to construct the query string of the authentication request. |
Events Summary
Called when the authentication flow succeeds and a valid token is generated. | |
Called when any error (including user cancellation) happens during the authentication flow. | |
Called when the access token refresh request finishes and a valid refreshed token is generated. | |
Called when any error (including user cancellation) happens during the authentication flow. |
Methods Summary
Starts the authentication flow with the standard OAuth 2. | |
Starts the refresh flow with the standard OAuth 2. |
Properties
The client ID of your Discord application.
The client secret of your Discord application.
NOTICE
Setting this value may leak the client secret and cause security issue. Prefer to setting the PKCESupport to S256
in the option instead. With the correct PKCE setup, you do not need to set the client secret here.
The redirect URI of this Discord application.
The scope string of all your required scopes.
Optional to control this flow's behaviour.
Whether to enable PKCE when performing authentication. On mobile platforms, this has to be enabled as S256
, otherwise, Discord will reject the authentication request.
Whether to enable the state verification. If enabled, the state will be generated and verified in the authentication callback. Default is true
.
The additional query arguments that are used to construct the query string of the authentication request.
This is useful when you want to add some custom parameters to the authentication request. This string will be appended to the query string that constructed from GetAuthenticationUriArguments
.
For example, if you set the value to prompt=consent&ui_locales=en
, it will be contained in the final authentication query.
Events
Called when the authentication flow succeeds and a valid token is generated.
Example
discordFlow.OnAuthenticationFinished.AddListener(OnDiscordTokenReceived)
void OnDiscordTokenReceived(UniWebViewAuthenticationDiscordToken token) {
Debug.Log("Discord Access Token: " + token.AccessToken);
}
Called when any error (including user cancellation) happens during the authentication flow.
Example
discordFlow.OnAuthenticationErrored.AddListener(OnDiscordAuthError);
void OnDiscordAuthError(long error, string message) {
Debug.Log("Error code: " + error + " Message: " + message);
}
Called when the access token refresh request finishes and a valid refreshed token is generated.
Example
discordFlow.OnRefreshTokenFinished.AddListener(OnRefreshTokenReceived)
void OnRefreshTokenReceived(UniWebViewAuthenticationDiscordToken token) {
Debug.Log("Access Token: " + token.AccessToken);
}
Called when any error (including user cancellation) happens during the authentication flow.
Example
discordFlow.OnRefreshTokenErrored.AddListener(OnRefreshTokenError);
void OnRefreshTokenError(long error, string message) {
Debug.Log("Error code: " + error + " Message: " + message);
}
Methods
Starts the authentication flow with the standard OAuth 2.0. This implements the abstract method in UniWebViewAuthenticationCommonFlow
.
Starts the refresh flow with the standard OAuth 2.0. This implements the abstract method in UniWebViewAuthenticationCommonFlow
.