# Start a White Label Session

White Label login works a little differently than other platforms in the sense that we first have to create a White Label login session, which is then used to create a game session. When the White Label Account is logged in the SDK will save the token and use it to create a Game Session.

The LootLocker SDKs provide a single method for the complete login flow. If you for some reason need to separate the steps, that is possible as well if you follow [these instructions](https://github.com/lootlocker/gitbook-sync/blob/main/players/white-label-login/how-to/nintendo-switch/manual-login.md).

{% tabs %}
{% tab title="Unity" %}

```csharp
// Remember to use the LootLocker namespace in the top of your file.
using LootLocker.Requests;

// This code should be placed in a handler when user clicks the login button.
string email = "user@lootlocker.io";
string password = "password here";
bool rememberMe = true;
LootLockerSDKManager.WhiteLabelLoginAndStartSession(email, password, rememberMe, response =>
{
    if (!response.success)
    {
        if (!response.LoginResponse.success) {
            Debug.Log("error while logging in");
        } else if (!response.SessionResponse.success) {
            Debug.Log("error while starting session");
        }
        return;
    }

     // Handle Returning Player
});
```

{% hint style="success" %}
Congratulations - you have now started using LootLocker in your game! Next up we suggest you look at our [feature set](/the-basics/what-is-lootlocker.md) and decide which ones you want to use in your game.
{% endhint %}
{% endtab %}

{% tab title="Unreal" %}
{% hint style="warning" %}
This requires that you have [set up the Unreal SDK in your game.](/the-basics/unreal-quick-start.md)
{% endhint %}

<figure><img src="/files/3taVP9QVwvl27DK87sKj" alt="Shows an example of how to implement login and starting a game sessioin using a White Label account in Unreal Blueprints - see link: https://blueprintue.com/blueprint/ifhc8tck/"><figcaption><p><a href="https://blueprintue.com/blueprint/ifhc8tck/">Blueprint example of Logging in and starting a game session with a White Label account</a></p></figcaption></figure>

Above is an example of how to implement login and starting a game session with a White Label account using blueprints in Unreal Engine. For an example you can copy and paste into your editor, [look here](https://blueprintue.com/blueprint/ifhc8tck/).

**Input**

You need to exchange the `TriggerLogin` event for whatever event you want to use to trigger the flow.

**Output**

We recommend branching the completed events on the success flag, and if you do this you will probably want to add error handling in case the request fails as well as what (if any) continued actions you want on success.

For subsequent calls to different LootLocker methods you will want to create variables from the Player Id and Player Identifier outputs.

Since this method is behind the scenes a two step process, first login and then starting a game session, you can access the individual responses for debugging purposes using the LoginResponse and StartSessionResponse properties.

{% hint style="success" %}
Congratulations - you have now started using LootLocker in your game! Next up we suggest you look at our [feature set](/the-basics/what-is-lootlocker.md) and decide which ones you want to use in your game.
{% endhint %}
{% endtab %}

{% tab title="Godot" %}

```gdscript

var response = await LL_WhiteLabel.LoginAndStartSession.new("an-email>", "a-password").send()
if(!response.success) :
    # Request failed, handle errors
    pass
else:
    # Request succeeded, use response as applicable in your game logic
    pass
```

{% hint style="success" %}
Congratulations - you have now started using LootLocker in your game! Next up we suggest you look at our [feature set](/the-basics/what-is-lootlocker.md) and decide which ones you want to use in your game.
{% endhint %}
{% endtab %}

{% tab title="REST" %}
First login to get the session token

<pre class="language-bash"><code class="lang-bash"><strong>curl -X POST "https://api.lootlocker.io/white-label-login/login" \
</strong>  -H "domain-key: 11aaa11" \
  -H "is-development: true" \
  -H "Content-Type: application/json" \
  -d "{\"email\": \"test@lootlocker.io\", \"password\": \"some password here\", \"remember\": true}"
</code></pre>

Example response:

```json
{
  "id": 406,
  "game_id": 2,
  "email": "test@lootlocker.io",
  "created_at": "2021-08-25T08:03:34.612346459Z",
  "updated_at": "2021-08-25T08:03:34.612346459Z",
  "deleted_at": null,
  "validated_at": null,
  "session_token": "afccd38d-09d5-48aa-8235-b9c4c9151596"
}
```

Now you can use the session token to start a game session with the following call:

```bash
curl -X POST "https://api.lootlocker.io/game/v2/session/white-label" \
  -H "Content-Type: application/json" \
  -d "{\"game_key\": \"your_game_key\", \"email\": \"test@lootlocker.io\", \"token\": \"afccd38d-09d5-48aa-8235-b9c4c9151596\", \"game_version\": \"0.10.0.0\"}"
```

Example response:

```
{
  "success": true,
  "session_token": "e6fa44946f077dd9fe67311ab3f188c596df9969",
  "player_id": 3,
  "public_uid": "TSEYDXD8",
  "player_created_at": "2022-05-30T07:56:01+00:00",
  "check_grant_notifications": true,
  "check_deactivation_notifications": false,
  "seen_before": true
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.lootlocker.com/players/white-label-login/how-to/start-session.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
