Links

Apple

Authenticate your players using Apple's proprietary login system and register a session for them on the LootLocker backend.
Apple platform needs to be enabled and configured in the Web Console before it can be used in your game. This also requires you to have a developer account with Apple.

Configuration

To start using Sign in with Apple we first need to configure our integration in the platform settings

Team ID

You can find your Apple Team ID by logging in to the Apple developer portal and going to the Membership page. On that page you should be able to see your Team ID.

Client ID

Client ID will in most cases be the bundle identifier for your App when you created it in Xcode or in the Apple developer portal.

Key ID & Certificate

After logging in to your Apple developer portal, navigate to the "Certificates, Identifiers & Profiles" page. From here you can create a new key.
When creating a key, make sure to enable "Sign in with Apple" and pressing the configure button. The "Primary App ID" should be the same as your game (bundle identifier)
When finished creating your key, make sure you download the certificate, which we will upload in the LootLocker Console.
The Key ID can be seen when clicking the key after creation in the Apple developer portal.

Start Session

You need to acquire an Apple authorization code to be able to start an apple session, but once you have that, simply follow along to the code snippet below. In the response from LootLocker you will find a refresh token. We will store this and use it to refresh the session during the lifetime of the refresh token so that you do not need to do the full sign-in flow each time.
Unity
Unreal
REST
// authCode can be retrieved from appleIDCredential.authorizationCode
string authCode = "put authorizationCode here";
LootLockerSDKManager.StartAppleSession(authCode, (response) =>
{
if (!response.success)
{
Debug.Log("error starting LootLocker session");
return;
}
Debug.Log("session started successfully");
});
To copy and paste the above example into your editor, look here.
Input
You need to exchange the TriggerAppleStartSession event for whatever event you want to use to trigger the login flow. Remove the node REPLACE: Apple Auth Code and replace it with your preferred method of getting the Apple Authentication Code.
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 and 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. In the session response when starting an Apple session you also get a refresh token that we will save under the hood. But if you want to use it manually, we provide it for you.
Beyond those three, there is a lot of interesting stuff in the session response, like current xp and level for example.
curl -X POST "https://api.lootlocker.io/game/session/apple" \
-H "LL-Version: 2021-03-01" \
-H "Content-Type: application/json" \
-d "{\"game_key\": \"your_game_key\", \"apple_authorization_code\": \"eyJQa....\", \"game_version\": \"1.0.0.0\", \"session_id\": \"8438f4b3-90e4-4cdd-8434-c5c6b4c2c9f1\"}"
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,
"refresh_token": "748b5ac8-794a-44e3-bb59-c59a2f397e84",
"player_identifier": "76561198023004363"
}

Refresh Session

With Apple authentication, you can refresh the session instead of having the player do a full sign-in every time. The request will return a 401 (Unauthorized) if the refresh token has expired, in which case you will need to start a new session.
Unity
Unreal
REST
LootLockerSDKManager.RefreshAppleSession((response) =>
{
if (!response.success)
{
if (response.statusCode == 401) {
// Refresh token has expired, use StartAppleSession
}
else {
Debug.Log("error starting LootLocker session");
}
return;
}
Debug.Log("session started successfully");
});
To copy and paste the above example into your editor, look here.
Input
You need to exchange the TriggerAppleRefreshSession event for whatever event you want to use to trigger the login flow. The node Refresh Token is the one you saved when starting a session, but it is optional as we save it behind the scenes as well.
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 and 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. In the session response when starting an Apple session you also get a refresh token that we will save under the hood. But if you want to use it manually, we provide it for you.
Beyond those three, there is a lot of interesting stuff in the session response, like current xp and level for example.
curl -X POST "https://api.lootlocker.io/game/session/apple" \
-H "LL-Version: 2021-03-01" \
-H "Content-Type: application/json" \
-d "{\"game_key\": \"your_game_key\", \"refresh_token\": \"748b....\", \"player_identifier\": \"765..\", \"game_version\": \"1.0.0.0\", \"session_id\": \"8438f4b3-90e4-4cdd-8434-c5c6b4c2c9f1\"}"
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,
"refresh_token": "748b5ac8-794a-44e3-bb59-c59a2f397e84",
"player_identifier": "76561198023004363"
}
Congratulations - you have now started using LootLocker in your game with Apple Game Center! Next up we suggest you look at our feature set, and decide which ones you want to use in your game.