Skip to main content

AuthResult

Data structure

caution

If the game uses the FirstLogin field to determine whether the player is a new user, when clearing data, the game needs to inform Player Network SDK to clear the relevant data.

FINTLAuthResult: Inherits from FINTLBaseResult, include login information.

NameTypeDescription
OpenIDFStringPlayer Network SDK unique user ID
TokenFStringUser token generated by Player Network SDK
TokenExpireint64Token expiration timestamp
For example, 1600844518
FirstLoginint32Whether this is the first login
-1: Unknown
0: No
1: Yes
UserNameFStringUser defined nickname
Genderint32Gender
0: Undefined
1: Male
2: Female
BirthdateFStringReturns empty, collection of player birthdate is not allowed according to compliance requirements
PictureUrlFStringUser avatar URL
PfFStringpf value
For Midas payment
PfkeyFStringpf key
For Midas payment
NeedRealNameAuthboolWhether real-name verification is required
ChannelIDint32Channel ID
ChannelNameEINTLLoginChannelChannel name
ChannelInfoFStringThird-party channel login information
JSON data, each Channel has its own value
BindListFStringLinking information
JSON data in array type
LegalDocumentsAcceptedVersionFStringThe accepted version of legal documents
DeleteAccountStatusint32Account deletion status
For more information, see DeleteAccountStatus.
DeleteAccountInfoStringReach out to the Player Network representative if DeleteAccountInfo is required
Delete account information, JSON data.
For more information, see DeleteAccountInfo.
TransferCodeFStringTransfer code
TransferCodeExpireTimeint32Expiration time for transfer code
DeleteLIAccountStatusintLEVEL INFINITE PASS account deletion status
For more information, see DeleteLIAccountStatus.
EmailstringEmail address

The ExtraJson in FINTLAuthResult contains the JSON strings for the Protocol version and Compliance result of the player queried from the backend.

Protocol version

The template string for the protocol version is:

"need_notify_rsp": {
"has_bind_li": true,
"is_receive_email": 1,
"is_receive_email_in_night": 0,
"user_agreed_game_dma": "",
"user_agreed_game_pp": "36",
"user_agreed_game_tos": "36",
"user_agreed_li_dt": "",
"user_agreed_li_pp": "1",
"user_agreed_li_tos": "",
"need_notify": false
}
ParameterTypeDescription
user_agreed_game_tosstringVersion of the Terms of Service the player agreed to, pass null if player does not agree
user_agreed_game_ppstringVersion of the Privacy Policy the player agreed to, pass null if player does not agree
user_agreed_li_ppstringVersion of the LEVEL INFINITE PASS Privacy Policy the player agreed to, pass null if player does not agree
user_agreed_li_dtstringVersion of the Data Transfer agreement the player agreed to, pass null if player does not agree
user_agreed_li_tosstringVersion of the LEVEL INFINITE PASS Terms of Service the player agreed to, pass null if player does not agree
is_receive_emailintWhether to receive marketing emails
is_receive_email_in_nightintWhether to receive marketing emails (South Korea)
need_notifyboolWhether LI PASS agreements has been upgraded
has_bind_liboolWhether account is linked to LI PASS

Compliance result

Template string:

"get_status_rsp": {
"adult_age": 18,
"adult_age_map": "{\"1\":18,\"10\":18,\"11\":18,\"2\":18,\"3\":14,\"4\":14,\"5\":18,\"6\":18,\"7\":18,\"8\":18,\"9\":18}",
"adult_check_status": 1,
"adult_check_status_expiration": "0",
"certificate_type": 0,
"email": "",
"eu_user_agree_status": 0,
"game_grade": 0,
"game_grade_map": "{\"1\":14,\"2\":14,\"5\":14}",
"is_dma": false,
"is_eea": false,
"is_need_li_cert": false,
"msg": "success",
"need_parent_control": 0,
"need_realname_auth": 0,
"parent_certificate_status": 0,
"parent_certificate_status_expiration": "0",
"parent_control_map": {},
"qr_code_ret": 0,
"realname_auth_status": 0,
"region": "344",
"ret": 0,
"ts": "1712112893",
"uid_status":"{\"ret\":0,\"msg\":\"success\",\"adult_check_status\":1,\"adult_check_status_expiration\":0,\"parent_certificate_status\":0,\"parent_certificate_status_expiration\":0,\"eu_user_agree_status\":0,\"ts\":1736324989,\"adult_age\":13,\"game_grade\":0,\"certificate_type\":1,\"region\":\"702\",\"email\":\"\",\"adult_age_map\":{},\"game_grade_map\":{},\"realname_auth_status\":0,\"need_realname_auth\":0,\"is_eea\":false,\"is_need_li_cert\":false,\"adult_status_map\":{},\"need_parent_control\":0,\"parent_control_map\":{},\"qr_code_ret\":0,\"is_dma\":false,\"need_voice_control\":0,\"voice_control_status\":0,\"need_voice_control_ingame\":0,\"need_voice_control_parent_cert\":0,\"need_lbs_control\":0,\"lbs_control_status\":0,\"need_lbs_control_ingame\":0,\"need_lbs_control_parent_cert\":0,\"uid_status\":\"\",\"uid_status_ret\":0,\"uid_status_msg\":\"\"}",
"uid_status_msg":"success",
"uid_status_ret":0,
}
ParameterTypeDescription
retnumberReturn code
0: Request success
!=0: Request failure, see msg for detailed return message
msgstringReturn message
adult_check_statusnumberPlayer adult status
-1: Minor
0: Not set
1: Adult
adult_check_status_expirationstringThe next authorization time required for minors
parent_certificate_statusnumberParental authorization status
-1: Refuse
0: Not authorized
1: Authorized
10: In progress (for email authorization only)
parent_certificate_status_expirationstringThe next authorization time after the parent refused
eu_user_agree_statusnumberWhether players in the EU region consent to transfer their user data to non-EU regions
-1: Refuse
0: Not set
1: Consent
tsstringCurrent timestamp
adult_agenumberAge of majority according to country/region
Use default age if not found.
game_gradenumberGame rating standard according to country/region
Use default rating if not found
adult_age_mapstringAge of majority according to platform for South Korea
game_grade_mapstringGame rating standard according to platform for South Korea
certificate_typenumberAuthorization type according to country/region
Use the default authorization type if not found
0: Authorization not required
1: Self-authorization
2: Credit-card authorization
3: Email authorization
regionstringISO 3166-1 numeric code for country or region
For example 156 for China, 040 for Austria
uid_statusstringMinor authentication status of LI PASS UID, applicable to LI PASS login or accounts linked with LI PASS

Age requirement for South Korea

When querying for the compliance information of a player, extra steps will have to be taken if the player is from South Korea, due to requirements from the South Korean government. As such, AdultAgeMap and GameGradeMap will be used to determine the age requirements of the specific device platform being used.

OSPlatform
1Android
2iOS
5PC
6Switch
10PS5
11Xbox

For example, the age of majority for PC will be AdultAgeMap[5], while the game rating standard for PC will be GameGradeMap[5].

int adultAgeInPC = AdultAgeMap[5]
int gameGradeInPC = GameGradeMap[5]

DeleteAccountStatus

caution

Reach out to the Player Network representative to configure DeleteAccountStatus, otherwise DeleteAccountStatus returns -1.

ValueDescriptionRemark
0No account deletion or account deletion has been canceledAllow player to enter the game
1Account deletion cooling-off periodStop player login, prompt player whether to cancel account deletion and enter the game
2Account deletion completedStop player from entering the game
3Account deletion in progressStop player from entering the game
4Account deletion failedStop player from entering the game
-1Status not returned from backendRecommend allowing player to enter the game
-2Network unstable for the account deletion status serviceRecommend allowing player to enter the game
-3DMCS response data format is wrong (return status or err_code fields missing in JSON)Recommend allowing player to enter the game
-4Internal error (parameter verification is incorrect or configuration verification is not equal to internal authorization logic)Recommend allowing player to enter the game
-10 or -11Internal error in the account deletion status serviceRecommend allowing player to enter the game
>= 5UndefinedRecommend allowing player to enter the game
note

Games should review the consequences of allowing players to enter the game when the return value is negative, and if the game data may be impacted.

Stopping players from entering the game while the return value is negative may affect other players, and is therefore not recommended as an essential step in account deletion.

DeleteAccountInfo

JSON data:

{
"ret": 0, // int, return code, 0 indicates normal
"err_code": -10, // int, error code for INTL, games no need to pay attention
"msg": "", // error message, empty when the request is successful
"status": 0, // int, 0: no record or account deletion is cancelled; 1: cooling-off period; 2: account deleted successfully; 3: deleting account; 4: account deletion failed
"created_at": 12345678, // int64, timestamp when the account deletion request is created (when status is 0, timestamp is 0)
"target_destroy_at": 12345678, // timestamp to execute the account deletion (when status is 0, timestamp is 0)
"destroyed_at": 12345679 // int64, timestamp when the account is actually deleted (when status is not 2, timestamp is 0)
}

DeleteLIAccountStatus

ValueDescription
-1Account deletion query failed or status not returned from backend
0No account deletion records or deletion has been withdrawn
1Account deletion requested
2Account deletion succeeded
3Account deletion in progress |
4Failed to delete account