Requirements
- Make sure you have enabled your required login methods on Sequence Builder
- Visit our Platform Requirements page for detailed information on setting up and ensuring
that the authentication methods you choose are properly configured in your Unreal project.
Start Email Login
Sign in users with any email, and they will receive a one-time password in their inbox.
Listen for the Email Requires Code event.
const TFunction<void()> OnApiSuccess = [] { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartEmailLogin(Email, OnApiSuccess, OnApiFailure);
Confirm Email Login with Code
Sign in users with any email, and they will receive a one-time password in their inbox.
Listen for the Email Requires Code event.
const FString Code = "123456";
const TFunction<void()> OnApiSuccess = [] { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
const TFunction<void(FFederationSupportData)> OnApiFederationRequired = [this](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->ConfirmEmailLoginWithCode(Code, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
Sign In as a Guest
You can sign in users as guests. However, note that they will lose access to their wallet if they uninstall the app or sign out.
Leverage our account federation feature to link the wallet to another email or social account to keep access.
const TFunction<void()> OnApiSuccess = [] { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartGuestSession(OnApiSuccess, OnApiFailure);
Social Sign In
To initiate SSO-based authentication on desktop, you need to navigate to a browser to obtain the necessary id_token.
On mobile, our SDK handles this process for you using integrated plugins.
On desktop platforms, listen for the Sign in Web View Required
event and open the returned Sign In URL
.
On mobile platforms, listen for the Id Token Received
event.
When you call the Sign In
functions, listen for the Session Established
event on the SequenceSessionsBP
subsystem
to know when the sign in request was successful. Listen for Session Creation Failure
when something went wrong.
Get Google Id Token
USequenceSessions* Sessions = NewObject<USequenceSessions>();
if (Sessions->IsBrowserRequired)
const FString Url = this->Sessions->GetGoogleSignInUrl();
else
Sessions->GetGoogleTokenId(this);
Get Apple Id Token
USequenceSessions* Sessions = NewObject<USequenceSessions>();
if (Sessions->IsBrowserRequired)
const FString Url = this->Sessions->GetAppleSignInUrl();
else
Sessions->GetAppleTokenId(this);
Sign In with Google
Sign In with a valid Google Id Token. You get this from the Get Google Id Token node.
const FString IdToken = "ey1234";
const TFunction<void()> OnApiSuccess = []() { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
const TFunction<void(FFederationSupportData)> OnApiFederationRequired = [](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartOidcSession(IdToken, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
Sign In with Apple
Sign In with a valid Apple Id Token. You get this from the Get Apple Id Token node.
const FString IdToken = "ey1234";
const TFunction<void()> OnApiSuccess = []() { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
const TFunction<void(FFederationSupportData)> OnApiFederationRequired = [](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartOidcSession(IdToken, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
Sign In with Epic
Sign In with a valid Epic Games Id Token. Checkout the EOS Plugin for Unreal
const FString IdToken = "ey1234";
const TFunction<void()> OnApiSuccess = []() { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
const TFunction<void(FFederationSupportData)> OnApiFederationRequired = [](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartOidcSession(IdToken, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
Start Session with OIDC Id Token
Use this method to start a session using a valid Id token from Google, Apple or Epic Games.
const FString IdToken = "ey1234";
const TFunction<void()> OnApiSuccess = []() { };
const FFailureCallback OnApiFailure = [](const FSequenceError& Error) { };
const TFunction<void(FFederationSupportData)> OnApiFederationRequired = [](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->StartOidcSession(IdToken, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
PlayFab
You will need to include your PlayFab Title ID in the SequenceConfig.ini
file
during Configuration and configure PlayFab in the Builder.
PlayFab Registration
const TFunction<void()> OnApiSuccess = [this, OnSuccess]() { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
const TFunction<void (FFederationSupportData)> OnApiFederationRequired = [this](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->PlayFabRegistration(UsernameIn, EmailIn, PasswordIn, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
PlayFab Login
const TFunction<void()> OnApiSuccess = [this, OnSuccess]() { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
const TFunction<void (FFederationSupportData)> OnApiFederationRequired = [this](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->PlayFabLogin(UsernameIn, PasswordIn, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
PlayFab Authenticate with Session Ticket
const TFunction<void()> OnApiSuccess = [this, OnSuccess]() { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
const TFunction<void (FFederationSupportData)> OnApiFederationRequired = [this](const FFederationSupportData& FederationData) { };
USequenceSessions* Sessions = NewObject<USequenceSessions>();
Sessions->PlayFabAuthenticateWithSessionTicket(SessionTicket, OnApiSuccess, OnApiFailure, OnApiFederationRequired);
Account Federation
To link another account to your wallet, simply re-use the same authentication methods.
The SDK will check if there’s an existing session stored and will
automatically attempt to link that account.