iOS
The purpose of this article is to explain how to set up TikTok authentication so that your project can be logged in through the TikTok channel using the Player Network login authentication service.
Prerequisites
1. Configuring the application on the TikTok Developer Platform
1. Register and login to TikTok Developer account
Use your email to register and log in to the TikTok Developer Platform.
2. (Optional) Create a company Organization
TikTok recommends creating an organization to facilitate future collaboration and role/permission management.
3. Create TikTok App
- Go to Apps, and click Connect an app.

- Choose Individual Developer or Company Organization.
- Enter the App name and click Confirm to finish creation.

4. Configure App Basic Information
- Fill in basic app information: icon, name, app type, description, Terms of Service, Privacy Policy.
- In Platforms, check iOS.

- In Configure for iOS, provide iOS package details (ask your developer teammate).

5. Terms of Service & Privacy Policy URL domain authentication
TikTok requires authentication of the domain for your ToS/Privacy Policy URL; only after verification can you save and submit for review.
- Click Verify URL properties.

- In the pop-up, click Verify properties.

- Select URL prefix, enter the domain URL, and click Verify.

- Download the signature file generated by TikTok (e.g.:
tiktokxxxx.txt).
- Contact your operations/website teammate to upload this file to the corresponding domain server, making sure it can be directly downloaded via browser.
- After uploading, return to the TikTok page and click Verify to complete final authentication.
- If it fails: Check whether the signature file can be downloaded normally in the browser (file path/permissions/CDN cache, etc.).
6. App review information
- Describe in detail how your project uses the TikTok Login Kit authentication feature.
- Record a complete video of your project using TikTok authorized login. Since TikTok integration may not be complete at this stage, you can temporarily upload any video and provide the correct one when submitting for review.

7. Configure Products: enable Login Kit
- Go to Products and click Add products.

- Click + Add to add Login Kit.

- Configure the Login Kit:
- iOS Universal Link (ask your developer teammate)

- iOS Universal Link (ask your developer teammate)
- Replace the link with your project's Deep Link, but keep the callback path suffix:
.../pnt/tiktok/logincallback
8. Scopes configuration
- After Login Kit is added, TikTok automatically adds the
user.info.basicpermission. - Usually, no extra Scopes are needed (unless clearly required by business needs).
9. Save App configuration
- In the top right corner, click Save to save the configuration.
- Since integration and joint debugging have not been completed, please do not click “Submit for review” for now.
- If saving fails, please fill in all required fields according to the page error prompt (almost all of the above steps are necessary).

10. (Recommended) Create Sandbox and add test users
Before submitting for review, it is recommended to conduct development integration in the Sandbox environment.
- Switch to Sandbox in the top left corner, and click Create Sandbox.

- Enter a Sandbox name, check Clone from Production or an existing Sandbox, and click Confirm.

- In Sandbox, click Add account to add a test TikTok account:
- After successfully logging in, the account will appear in the Target Users list.
- Only accounts in Target Users can perform TikTok login tests

- Get Player Network Console login account.
- Create a new project for your project or join an existing one.
- Download SDK.
- Integrate SDK.
- Add TikTok as the login authentication method for business in Player Network Console.
Step 1: Configure SDK for TikTok Login
-
Open the project INTLConfig.ini file:
INTLConfig.ini[INTL environment]
# WARNING: You should change this URL to the production environment when you release your project.
INTL_URL = https://test.intlgame.com
GAME_ID = {INTL_GAME_ID}
SDK_KEY = {INTL_SDK_KEY}
[INTL Log]
LOG_LEVEL = 1
LOG_CONSOLE_OUTPUT_ENABLE = 1
LOG_FILE_OUTPUT_ENABLE = 1
LOG_ENCRYPT_ENABLE = 0
LOG_COMPRESS_ENABLE = 0
[TikTok]
TIKTOK_CLIENT_KEY = {INTL_TIKTOK_CLIENT_KEY}
TIKTOK_REDIRECT_URI = {INTL_TIKTOK_REDIRECT_URI}- Set the SDK backend environment
INTL_URLtohttps://test.intlgame.com. - Replace
{INTL_GAME_ID}and{INTL_SDK_KEY}with theGAME_IDandSDK_KEYvalues assigned by Player Network Console. - Set
LOG_LEVEL = 1,LOG_CONSOLE_OUTPUT_ENABLE = 1,LOG_FILE_OUTPUT_ENABLE = 1,LOG_ENCRYPT_ENABLE = 0, andLOG_COMPRESS_ENABLE = 0to output console and log files without encryption or compression. - Replace
{INTL_TIKTOK_CLIENT_KEY}with the Client Key assigned for the current app in the TikTok Developer Platform, which identifies your project in the TikTok login process. - Replace
{INTL_TIKTOK_REDIRECT_URI}with the Redirect URI (Deeplink address) where TikTok will redirect after the authorization is complete, so the user returns to the project with login results.
- Set the SDK backend environment
Step 2: Add TikTok Login
Player Network checks the application login status before opening the app for login.
- If the TikTok app is installed, Player Network will open the TikTok app for login.
- If the TikTok app is not installed, the Player Network login page will not display the TikTok channel login option.
- Register login-related callbacks.
- Unity
- Unreal Engine
// Add callbacks
public void AddAuthObserver()
{
INTLAPI.AddAuthResultObserver(OnAuthResultEvent);
}
// Remove callbacks
public void RemoveAuthObserver()
{
INTLAPI.RemoveAuthResultObserver(OnAuthResultEvent);
}
// Process the INTLAuthResult callback
public void OnAuthResultEvent(INTLAuthResult ret)
{
Debug.Log($"MethodID: {ret.MethodId}");
string methodTag = "";
if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_LOGIN)
{
methodTag = "Login";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_BIND)
{
methodTag = "Bind";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_AUTOLOGIN)
{
methodTag = "AutoLogin";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_QUERY_USER_INFO)
{
methodTag = "QueryUserInfo";
}
else if (authRet.MethodId == (int)INTLMethodID.INTL_AUTH_GET_AUTH_RESULT)
{
methodTag = "GetAuthResult";
}
}
C++ Event Handling (above v1.15)
//configure callback
FINTLAuthEvent authEvent;
authEvent.AddUObject(this, &OnAuthResult_Implementation);
UINTLSDKAPI::SetAuthResultObserver(authEvent);
// Remove callbacks
UINTLSDKAPI::GetAuthResultObserver().Clear();
void OnAuthResult_Implementation(FINTLAuthResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}
Unreal Event Handling
void OnAuthResult_Implementation(FINTLAuthResult ret)
{
UE_LOG(LogTemp, Warning, TEXT("MethodID: %d"), ret.MethodId);
}
- Call the
AutoLogininterface to log in automatically.
- Unity
- Unreal Engine
INTLAPI.AutoLogin();
UINTLSDKAPI::AutoLogin();
- If automatic login fails, call the
Logininterface to allow players to manually log in.
- Unity
- Unreal Engine
INTLAPI.Login(INTLChannel.TikTok);
UINTLSDKAPI::Login(EINTLLoginChannel::kChannelTikTok);
- Synchronize the client's authentication status with the project backend and await the final validation result.
If you encounter issues during integration, see FAQs.