通过深度链接设置身份认证
深度链接允许用户一键通过游戏认证进入网页商城,而无需使用用户ID或艾克索拉登录管理器经历身份认证过程。
如果游戏安装在用户移动设备上,将通过深度链接跳转到游戏获取一个授权令牌。
用户流程
在移动应用中
- 网页商城中的未授权用户点击登录按钮或购买按钮。随后将打开一个用于输入用户ID或通过移动游戏登录的模态窗口。
- 用户点击通过游戏登录的按钮。
- 用户被跳转到游戏,并在那里自动以授权用户的身份跳转到网页商城。
在桌面版本中
- 网页商城中的未授权用户点击登录按钮或购买按钮。随后将打开一个用于输入用户ID或使用二维码登录游戏移动版本的模态窗口。
- 用户有移动设备扫描二维码,然后网页商城即在其移动设备上打开。
- 游戏的移动版本在用户移动设备上打开。
- 用户自动以授权用户的身份跳转到移动设备上的网页商城。
服务交互过程
如何设置
游戏侧
- 在游戏的移动应用设置中,注册一个URL机制来通过深度链接打开游戏:
- Android应用 —
AndroidManifest.xml
文件中 - iOS应用 —
Info.plist
文件中
- Android应用 —
gamename://authorize
,其中:gamename
— 应在移动设备上打开的用于用户认证的游戏的名称。authorize
— 游戏打开后应执行的操作名称示例。请使用与应用操作系统中的操作一致的操作名称。
Copy
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>gamename</string>
</array>
</dict>
</array>
在Android应用中注册URL机制的示例:
Copy
<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>
- 实现使用游戏中的用户ID生成JWT格式的授权令牌。
参数 | 类型 | 描述 |
---|---|---|
loginId | string | 发布商帐户中授权方式的ID。必需。 |
webhookUrl | string | 接收网页商城中的用户验证Webhook的URL。该URL应与设置通过用户ID进行身份认证时指定的地址一致。艾克索拉预期在授权网页商城用户的Webhook的响应中收到一个200 HTTP代码。如果艾克索拉收到一个404 HTTP代码或未收到响应,则用户将不会被授权。您可以指定值 "webhookUrl": "https://nowebhook.com" 在通过深度链接进行认证时禁用Webhook。该情况下,艾克索拉将不会检查用户是否存在,因此请确保在user.id参数中传递游戏中存在的用户ID。必需。 |
settings.projectId | string | 发布商帐户中的项目ID,可在浏览器地址栏中的项目名称旁边找到。该URL的格式如下:https://publisher.xsolla.com/merchant ID/Publisher Account section 。必需。 |
user.id | string | 游戏中的用户ID。必需。 |
user.name | string | 用户名称。必需。 |
使用curl调用用户令牌生成API方法的示例:
Copy
- curl
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”}
的响应。
- 添加一个包含授权成功通知(可选)。
- 实现使用获得的用户令牌在浏览器中打开网页商城。
创建对已授权用户在浏览器中打开网页商城的URL示例:
https://example.com/?token={token}
(如使用自定义域名)https://example.xsollasitebuilder.com/?token={token}
(如使用艾克索拉域名)
{token}
是用户的授权令牌。在建站器中
您可以用下方提供的代码示例在建站器侧自己进行设置。如需设置帮助,请联系您的客户成功经理或发送邮件至csm@xsolla.com。
注:
首先请设置通过用户ID进行身份认证。这一步是必需的,以便在深度链接认证不可用时用户有其他认证方式。例如用户移动设备上未安装该游戏的情况。
- 在发布商帐户中打开项目。
- 在侧边栏中单击建站器。
- 在包含通过用户ID进行认证的网页商城网站所在卡片上单击配置。
- 前往登录设置,然后选择用户ID部分。
- 将深度链接授权开关设置为开。
- 在深度链接URL字段,输入用于用户身份认证的链接。
- 如在网站上使用快速登录区块:
- 前往快速登录区块。
- 在布局部分,将二维码开关设置为开。
- 要检查身份认证,请单击预览。
- 要发布网站,请单击发布。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。