Skip to main content

Authorization

This page explains how to authorize users, receive account information, handle events, and check authorization state using the Platform101XP SDK.


1. Authorization Methods

Authorize User

P101XP.GetInstance().Authorize();

Show Profile Window

P101XP.GetInstance().ShowProfile();

2. Events

Authorization Result Event

using Platform101XP.Entities;

private void AuthorizeResultHandler(AuthorizeResult result)
{
}

P101XP.GetInstance().AuthorizeResultEvent += AuthorizeResultHandler;

Account Information Event

private void AccountResultHandler(AccountResult result)
{
}

P101XP.GetInstance().GetAccountEvent += AccountResultHandler;

3. Data Structures

Token and AuthorizeResult

public class Token
{
public string accessToken;
public long expires;
public string type;
public string provider;
}

public class AuthorizeResult
{
public Token token;
public string error;
}

Account and AccountResult

public class Account
{
public long accountId;
public long portalId;
public long userGameId;
public long mobileId;
public string userName;
public string userPhotoUrl;
public bool isGuest;
}

public class AccountResult
{
public Account account;
public string error;
}

4. Authorization State Helpers

You may query the current authorization state at any time:

Token token     = P101XP.GetInstance().GetToken();
Account account = P101XP.GetInstance().GetAccount();
  • token appears first
  • account appears later (async load)

5.1 Check if the user is authorized

var token = P101XP.GetInstance().GetToken();

if (token != null)
{
// Authorized
}
else
{
// Not authorized
}

5.2 Check if account data is available

var account = P101XP.GetInstance().GetAccount();

if (account != null)
{
Debug.Log("User: " + account.userName);
}
else
{
Debug.Log("Account not loaded yet");
}

5.3 Token exists but account is not ready yet

This is normal behavior:

var token = P101XP.GetInstance().GetToken();
var account = P101XP.GetInstance().GetAccount();

if (token != null)
{
if (account != null)
{
// Full user info available
}
else
{
Debug.Log("Waiting for account data...");
}
}

5.4 Check if the user is a guest

var account = P101XP.GetInstance().GetAccount();

if (account != null && account.isGuest)
{
Debug.Log("Guest mode");
}

6. Typical Authorization Flow

Subscribe → Authorize() → Receive Token → SDK loads account → Receive AccountResult

Note:
If the user already has a valid token (GetToken() != null), you do not need to call Authorize() again.
In this case, simply check whether account data is available (GetAccount()) and wait for GetAccountEvent if needed.


7. Namespaces

All SDK data classes are located under:

namespace Platform101XP.Entities

Add this to use the SDK models:

using Platform101XP.Entities;