通过深度链接设置身份认证

深度链接允许用户一键通过游戏认证进入网页商城,而无需使用用户ID艾克索拉登录管理器经历身份认证过程。

如果游戏安装在用户移动设备上,将通过深度链接跳转到游戏获取一个授权令牌。

用户流程

  1. 网页商城中的未授权用户点击登录按钮或购买按钮。随后将打开一个用于输入用户ID或通过移动游戏登录的模态窗口。
  1. 用户点击通过游戏登录的按钮。
  2. 用户被跳转到游戏,并在那里自动以授权用户的身份跳转到网页商城。

  1. 网页商城中的未授权用户点击登录按钮或购买按钮。随后将打开一个用于输入用户ID或使用二维码登录游戏移动版本的模态窗口。

  1. 用户有移动设备扫描二维码,然后网页商城即在其移动设备上打开。
  2. 游戏的移动版本在用户移动设备上打开。
  3. 用户自动以授权用户的身份跳转到移动设备上的网页商城。
  1. 在游戏的移动应用设置中,注册一个URL机制来通过深度链接打开游戏:
    • Android应用 — AndroidManifest.xml文件中
    • iOS应用 — Info.plist文件中
注册机制后,用户通过游戏认证进入网页商城时,游戏应在指定地址上打开。 注册游戏的URL机制示例:gamename://authorize,其中:
  • gamename — 应在移动设备上打开的用于用户认证的游戏的名称。
  • authorize — 游戏打开后应执行的操作名称示例。请使用与应用操作系统中的操作一致的操作名称。
在iOS应用中注册URL机制的示例:
Copy
Full screen
Small screen
    <key>CFBundleURLTypes</key>
      <array>
        <dict>
          <key>CFBundleTypeRole</key>
          <string>Editor</string>
          <key>CFBundleURLSchemes</key>
          <array>
            <string>gamename</string>
          </array>
        </dict>
      </array>
    

    在Android应用中注册URL机制的示例:

    Copy
    Full screen
    Small screen
      <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data android:scheme="gamename" android:host="authorize" />
      </intent-filter>
      

      1. 实现使用游戏中的用户ID生成JWT格式的授权令牌。

      参数类型描述
      string发布商帐户中授权方式的ID。必需
      string接收网页商城中的用户验证Webhook的URL。该URL应与设置通过用户ID进行身份认证时指定的地址一致。艾克索拉预期在授权网页商城用户的Webhook的响应中收到一个200 HTTP代码。如果艾克索拉收到一个404 HTTP代码或未收到响应,则用户将不会被授权。

      您可以指定值"webhookUrl": "https://nowebhook.com"在通过深度链接进行认证时禁用Webhook。该情况下,艾克索拉将不会检查用户是否存在,因此请确保在user.id参数中传递游戏中存在的用户ID。
      必需
      string发布商帐户中的项目ID,可在浏览器地址栏中的项目名称旁边找到。该URL的格式如下:https:​//publisher.xsolla.com/merchant ID/Publisher Account section必需
      string游戏中的用户ID。必需
      string用户名称。必需

      使用curl调用用户令牌生成API方法的示例:

      Copy
      Full screen
      Small screen
      curl --location 'https://sb-user-id-service.xsolla.com/api/v1/user-id' \
      --header 'Content-Type: application/json' \
      --data '{
       "loginId": "000001aa-001a-0ab0-00001-01a01a01a01a",
       "webhookUrl": "https://nowebhook.com",
       "settings": {
         "projectId": 123456,
         "merchantId": 123456
       },
       "user": {
         "id": "123",
         "name": "a-user-name"
       }
      }'
      

      您将获得类似于{token=“JWT_TOKEN”}的响应。

      1. 添加一个包含授权成功通知(可选)。
      2. 实现使用获得的用户令牌在浏览器中打开网页商城。

      创建对已授权用户在浏览器中打开网页商城的URL示例:

      • https:​//example.com/?token={token}(如使用自定义域名)
      • https:​//example.xsollasitebuilder.com/?token={token}(如使用艾克索拉域名)
      {token}是用户的授权令牌。您可以用下方提供的代码示例在建站器侧自己进行设置。
      如需设置帮助,请联系您的客户成功经理或发送邮件至csm@xsolla.com
      注:
      首先请设置通过用户ID进行身份认证。这一步是必需的,以便在深度链接认证不可用时用户有其他认证方式。例如用户移动设备上未安装该游戏的情况。
      1. 发布商帐户中打开项目。
      2. 在侧边栏中单击建站器
      3. 在包含通过用户ID进行认证的网页商城网站所在卡片上单击配置
      4. 前往登录设置,然后选择用户ID部分。
      5. 深度链接授权开关设置为
      1. 深度链接URL字段,输入用于用户身份认证的链接。
      1. 如在网站上使用快速登录区块:
        1. 前往快速登录区块。
        2. 布局部分,将二维码开关设置为
      1. 要检查身份认证,请单击预览
      2. 要发布网站,请单击发布
      本文对您的有帮助吗?
      谢谢!
      我们还有其他可改进之处吗? 留言
      非常抱歉
      请说明为何本文没有帮助到您。 留言
      感谢您的反馈!
      我们会查看您的留言并运用它改进用户体验。
      上次更新时间: 2024年8月22日

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

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