Class: UPerformAuthenticationAsyncAction
// PerformAuthenticationAsyncAction.h : 40
class NBPATREONAPICLIENT_API UPerformAuthenticationAsyncAction
: public UCancellableAsyncAction;
Reflection-enabled
This action can be used to perform authentication with the Patreon API. The user's default web browser will be opened to allow them to sign in, a local HTTP server will be started to receive the authentication response from Patreon, and finally a request will be made to obtain an access token for the authenticated user.
The returned access token can be used to make additional requests to the Patreon API, e.g. to obtain information about the authenticated user and their pledges to determine if specific content should be unlocked for them.
IMPORTANT NOTE:
Because everything is being handled within the same process, using this action requires that the application have a copy of your client_id and client_secret, both of which will be included in HTTP requests sent to Patreon from the user's computer. This means that the user may be able to extract these values either from the packaged binaries or by analyzing their network traffic during the authentication process.
NEVER use your creator token here!
Properties
-
OnComplete
public: FPerformAuthenticationAsyncActionEvent OnComplete;
Reflection-enabled
Specifiers:
- BlueprintAssignable
Event invoked when authentication is completed successfully -
OnFail
public: FPerformAuthenticationAsyncActionFailedEvent OnFail;
Reflection-enabled
Specifiers:
- BlueprintAssignable
Event invoked if authentication fails for any reason
Methods
-
Activate
// PerformAuthenticationAsyncAction.h : 115 public: virtual void Activate() override;
Starts the task
-
Cancel
// PerformAuthenticationAsyncAction.h : 120 public: virtual void Cancel() override;
Can be called to cancel the task and prevent callbacks from being called
-
MakeAuthURI
// PerformAuthenticationAsyncAction.h : 95 public: static FString MakeAuthURI( const FString ClientID, const FString CallbackURI, FString id = TEXT("") );
Reflection-enabled
Specifiers:
- BlueprintCallable
- Category = NBPatreonAPIClient|HTTP
Meta Specifiers:
- DisplayName = Make Patreon Auth URI
- Keywords = NBPatreonAPIClient
Constructs a URI to the Patreon login/consent page, with default minimal scopes. This should be used to allow the user to authenticate with Patreon in a web browser.
Arguments
-
ClientID
const FString ClientID
Patreon app Client ID
-
CallbackURI
const FString CallbackURI
URI to redirect the user to after successfully authenticating
-
id
FString id = TEXT("")
Optional session/state/id value which will be passed back to the CallbackURI after authentication. This can be used to match a specific request to a specific response if necessary.
Returns
-
FString
-
PerformAuthenticationAsyncAction
// PerformAuthenticationAsyncAction.h : 54 public: static UPerformAuthenticationAsyncAction* PerformAuthenticationAsyncAction( const UObject* WorldContext, const FString ClientID, const FString ClientSecret, const FString CallbackRoute = TEXT("/login"), const int32 CallbackPort = 8080 );
Reflection-enabled
Specifiers:
- BlueprintCallable
- Category = NBPatreonAPIClient
Meta Specifiers:
- DisplayName = Perform Authentication
- Keywords = NBPatreonAPIClient
- WorldContext = WorldContext
- BlueprintInternalUseOnly = true
Performs OAuth login to Patreon using the user's default web browser
Arguments
-
WorldContext
const UObject* WorldContext
-
ClientID
const FString ClientID
Patreon App client_id
-
ClientSecret
const FString ClientSecret
Patreon App client_secret
-
CallbackRoute
const FString CallbackRoute = TEXT("/login")
URL fragment (after hostname and port) to expect the login callback to invoke
-
CallbackPort
const int32 CallbackPort = 8080
Port to listen on for the login callback
Returns
-
UPerformAuthenticationAsyncAction*
-
PerformAuthenticationUMGAsyncAction
// PerformAuthenticationAsyncAction.h : 77 public: static UPerformAuthenticationAsyncAction* PerformAuthenticationUMGAsyncAction( const UObject* WorldContext, UWebBrowser* BrowserWidget, const FString ClientID, const FString ClientSecret, const FString CallbackRoute = TEXT("/login"), const int32 CallbackPort = 8080 );
Reflection-enabled
Specifiers:
- BlueprintCallable
- Category = NBPatreonAPIClient
Meta Specifiers:
- DisplayName = Perform Authentication (UMG Browser)
- Keywords = NBPatreonAPIClient
- WorldContext = WorldContext
- BlueprintInternalUseOnly = true
Performs OAuth login to Patreon using a UMG WebBrowser widget. (Requires the
WebBrowser
plugin to be enabled in your project)IMPORTANT NOTE:
Due to limitations of the WebBrowser widget, users will need to sign in using their e-mail address. SSO methods like "Sign in with Google" will fail because these rely on opening a second browser window.
Arguments
-
WorldContext
const UObject* WorldContext
-
BrowserWidget
UWebBrowser* BrowserWidget
Widget to use to display the login page
-
ClientID
const FString ClientID
Patreon App client_id
-
ClientSecret
const FString ClientSecret
Patreon App client_secret
-
CallbackRoute
const FString CallbackRoute = TEXT("/login")
URL fragment (after hostname and port) to expect the login callback to invoke
-
CallbackPort
const int32 CallbackPort = 8080
Port to listen on for the login callback
Returns
-
UPerformAuthenticationAsyncAction*
For any questions, help, suggestions or feature requests, please feel free to contact me at nbpsup@gmail.com