游戏内用户认证

运行机制

启动器将通过桌面应用认证的用户数据放在–xsolla-login-token参数中以JWT格式发送给游戏。您可使用该参数来设置游戏内自动用户认证。

主要JWT声明

身份认证或邮箱地址确认后,令牌会包含主要声明。这些声明的存在不依赖于用户数据库和认证调用。

声明                                                  类型必需描述
expUnix Timestamp令牌过期的日期和时间。默认过期时间是24小时。您可以更改各登录管理器项目的过期时间
issstring给令牌签名的服务:https://login.xsolla.com
iatUnix Timestamp授予令牌的日期和时间。
substring (UUID)写入在艾克索拉登录管理器服务器侧的用户ID。
groupsarray用户所在组的列表。每个组的写入格式如下:
  • id — 组ID;
  • name — 组名称;
  • is_default — 显示该组是否是默认组(truefalse)。
只能有一个默认组。在将用户分到不同组之前,该组包含所有用户。
xsolla_login_project_idstring (UUID)登录管理器项目ID。
usernamestring用户名。
publisher_idinteger拥有登录管理器项目的商户ID。
emailstring用户邮箱地址。
payloadstring身份认证过程中在payload参数中传递的附加信息。
promo_email_agreementboolean同意接收电子简讯。可为以下值:
  • true,如果用户同意接收电子简讯。
  • false,不同意接收。
默认为true值。
要向登录管理器小组件的注册表单添加该功能:
  • 如使用小组件2.0,请联系您的客户成功经理或发送邮件至csm@xsolla.com
  • 如果使用上一版本的小组件,请在初始化代码中添加值为promo_email_agreementfields参数。
connection_informationstring显示用户是否确认了其出生日期。确认由okname服务进行。

社交网络帐户认证

通过社交网络进行认证后包含在令牌中的声明如下。这些声明的存在不依赖于用户数据库。

声明                                                  类型必需描述
providerstring认证使用的社交网络的名称。可以是:amazonapplebaidubattlenetdiscordfacebookgithubgooglekakaolinkedinmailrumicrosoftmsnnaverokpaypalpsnqqredditsteamtwitchtwittervimeovkwechatweiboyahooyandexyoutubexbox
idstring社交网络中的用户ID。
is_cross_authboolean显示静默认证请求正在进行中。
social_access_tokenstring用于认证的社交网络帐户access_token参数。请联系您的客户成功经理或发送邮件至csm@xsolla.com设置该功能
picturestring (URL)社交网络中用户个人资料图片的链接。
birthdaydate (RFC 3339)社交网络中的用户出生日期。
genderstring社交网络中的用户性别。
namestring社交网络中的用户昵称。

用户流程

  1. 用户登录启动器。
  2. 启动器从艾克索拉登录管理器服务器收到包含用户信息的授权令牌
  3. 用户从启动器中启动游戏。
  4. 启动游戏时,启动器向游戏客户端传入以下参数:
    • --xsolla-login-token <token> — 从艾克索拉登录管理器服务器获取的授权令牌。
    • --xsolla-locale <locale> — UI语言。

示例:

Copy
Full screen
Small screen
    game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
    
    1. 游戏客户端通过以下方式之一向游戏服务器发送获得的用户令牌以检索用户数据:

    如何获取

    1. 实现用户数据的检索:
    2. 为游戏设置参数处理以自动对用户进行身份认证。
    3. 实现在游戏客户端上根据--xsolla-locale <locale> 参数中获取的语言选择界面语言
    4. 实现跟踪新用户以及在游戏服务器上为其创建帐户。

    在游戏服务器上解码JWT

    1. 发布商帐户中打开您的项目,然后前往登录管理器部分。
    2. 在登录管理器项目窗格中单击配置
    3. 前往安全性区块并选择JWT签名部分。
    4. 复制密钥字段的值。
    5. 选择并将其连接到应用程序的服务器侧。
    6. 将步骤4中复制的值传入解码函数条目。
    注意
    请勿将密钥告诉任何人。如果发生密钥泄露,请立即更新。

    使用Login API检索用户数据

    调用获取用户详细信息Login API方法来检索用户数据。

    用户注册

    要跟踪新用户注册:

    1. 发布商帐户中打开您的项目,然后前往登录管理器部分。
    2. 在登录管理器项目窗格中单击配置
    3. 在顶部设置区块,单击回调URL
    4. 回调URL字段中,输入用户注册后将其重定向到的URL地址。
    5. 配置在游戏中创建新帐户。注册后,用户将被重定向到回调URL字段中指定的URL(附加is_new=1参数)。
    6. 如要获取填充该帐户的信息,请使用Login API方法。

    示例:

    Copy
    Full screen
    Small screen
      https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
      

      UI语言

      ExampleValueMeaning
      –xsolla-locale en“en”
      “ru”
      “cn”
      “tw”
      “fr”
      “de”
      “it”
      “pt”
      “es”
      “pl”
      “cs”
      “ko”
      “ar”
      “bg”
      “he”
      “ja”
      “tr”
      “th”
      “vi”
      “ro”
      “English”
      “Русский”
      “简体中文”
      “中国传统的”
      “Français”
      “Deutsch”
      “Italiano”
      “Português”
      “Español”
      “Polski”
      “Čeština”
      “한국어”
      “العربية”
      “Български”
      “עברית”
      “日本語”
      “Türkçe”
      “ไทย”
      “Tiếng Việt”
      “Română”
      本文对您的有帮助吗?
      谢谢!
      我们还有其他可改进之处吗? 留言
      非常抱歉
      请说明为何本文没有帮助到您。 留言
      感谢您的反馈!
      我们会查看您的留言并运用它改进用户体验。
      上次更新时间: 2024年9月23日

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

      报告问题
      我们非常重视内容质量。您的反馈将帮助我们做得更好。
      请留下邮箱以便我们后续跟进
      感谢您的反馈!