JSON到用户资料键名映射

运行机制

您可以将响应艾克索拉登录管理器Webhook时返回的JSON对象中的字段映射到艾克索拉系统中的以下用户资料属性:

  • 出生日期(birthday)
  • 昵称(nickname)
  • 名字(first_name)
  • 姓氏(last_name)
  • 性别(gender)
  • 您服务器上的用户ID(server_custom_id)

注:
键名映射仅适用于以下艾克索拉登录管理器Webhook:
键名映射可用于:如果您为server_custom_id属性指定了键名,则可以通过server_custom_id启用帐户合并。这样我们的系统可以将所有server_custom_id相同的帐户识别为同一用户。

适用对象

使用自定义用户数据存储并希望在艾克索拉登录管理器中使用这些数据的合作伙伴。

如何获取

  1. 在发布商帐户的项目中,前往登录管理器部分。
  2. 选择登录选项,进入用户数据库部分。
  3. 前往存储部分。
  4. 选择自定义存储
  5. 选择您要配置键名映射的Webhook:
    • 用户验证
    • 用户创建
    • 社交网络登录
  6. 键名映射区块中,输入要映射到对应用户资料属性的字段名。
  1. 启用用户帐户关联开关设为激活,让我们的系统可以将所有server_custom_id相同的帐户识别为同一用户(可选)。
注:
仅当您在键名映射中为server_custom_id属性指定了键名时,才可通过server_custom_id进行帐户关联。
  1. 单击保存更改
注:
键名映射无需包含所有字段。

键名映射用法示例

将Webhook响应中的用户数据传递到JWT和用户资料属性

  1. 响应用户验证Webhook时,您将发送以下JSON对象(可包含任意字段集):
Copy
Full screen
Small screen
 1{
 2  "user": {
 3    "player_id": "12345678",
 4    "email": "user@example.com"
 5  },
 6  "user_info": {
 7    "username": "gamer123",
 8    "user_first_name": "John",
 9    "user_last_name": "Doe",
10    "gender": "male",
11    "birthday": "1990-05-15",
12    "country": "US",
13    "language": "en"
14  },
15  "subscription_status": "active",
16  "loyalty_level": "gold"
17}
  1. 在发布商帐户中,将键名映射到nicknameserver_custom_id属性。
  1. 获取用户详细信息的请求响应中,您将收到以下JSON:
Copy
Full screen
Small screen
 1{
 2  "birthday": null,
 3  "country": null,
 4  "devices": [
 5    {
 6      "device": null,
 7      "last_used_at": null,
 8      "type": null
 9    },
10    {
11      "device": null,
12      "last_used_at": null,
13      "type": null
14    }
15  ],
16  "email": null,
17  "external_id": null,
18  "first_name": null,
19  "gender": null,
20  "groups": [
21    {
22      "id": 1,
23      "is_default": false,
24      "name": "admin"
25    },
26    {
27      "id": 5,
28      "is_default": false,
29      "name": "user"
30    }
31  ],
32  "id": null,
33  "is_anonymous": false,
34  "last_login": null,
35  "last_name": null,
36  "nickname": "gamer123",
37  "phone": null,
38  "phone_auth": null,
39  "registered": null,
40  "tag": null,
41  "username": null
42}
注:
如果字段已添加到键名映射中,Webhook响应中返回的所有值都将包含在用户的JWT令牌中。对于系统中不存在的用户资料属性,响应将返回null
因此,您可以控制系统中的哪些数据将包含在艾克索拉用户资料中,并通过API和令牌访问。

在网页商城身份认证过程中使用键名映射和帐户关联

  1. 用户使用其用户ID登录网页商城。用户ID会被记录在JWT的server_custom_id字段中。
  2. 网页商城向您的服务器发送网页商城中的用户验证Webhook。
  3. 如果用户存在,您的服务器对Webhook响应HTTP 200;如果不存在,则响应404
  4. 网页商城对用户进行身份认证。
  5. 用户再次通过其他方式(如社交网络登录)登录网页商城。
  6. 网页商城将用户重定向至社交网络的登录页面。
  7. 用户在社交网络中登录。
  8. 社交网络将用户资料数据返回给网页商城。
  9. 网页商城向您的社交帐户登录URL发送Webhook
  10. 您的服务器根据社交网络资料数据识别用户,并为其分配与用户ID登录时相同的用户ID。
  11. 您的服务器返回2xx代码,并在JSON正文中包含用户ID。
  12. 网页商城保存用户属性,并将Webhook响应中的数据添加到JWT的partner_data字段中。
  13. 如果键名映射中包含server_custom_id的键且已启用帐户关联,网页商城会根据键名映射将收到的用户数据映射到资料属性,并关联帐户。
  14. 网页商城将用户认证到与用户ID登录时相同的帐户中。
本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。

继续阅读

上次更新时间: 2025年9月19日

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!
无法发送您的反馈
请稍后重试或发送邮件至doc_feedback@xsolla.com与我们联系。