PlayFab存储
如果使用PlayFab存储,可实现:
注:
您可以使用PlayFab方法向用户发送电子简讯,例如促销活动或更新等。
交互过程
您可以使用艾克索拉登录管理器小组件或您的应用程序作为客户端。客户端与艾克索拉登录管理器服务器之间的交互流程如下:
- 客户端向艾克索拉登录管理器服务器发送请求。请求格式见JWT、OAuth 2.0和Password端点的说明。
- 艾克索拉登录管理器服务器向PlayFab发送请求。
- 艾克索拉登录管理器服务器处理PlayFab的响应并将结果返回给客户端。
- 客户端处理响应。
注:
用户邮箱地址和社交媒体数据存储在艾克索拉侧。密码和PlayFab收集的额外数据不在艾克索拉侧存储。
PlayFab中的用户注册
用户注册遵循此流程。您可以设置发送给用户的帐户确认邮件来结束注册流程。
用户注册流程
- 客户端向艾克索拉登录管理器服务器发送
Register new user 请求。 - 艾克索拉登录管理器服务器发送一个注册请求。
- 用户数据写入艾克索拉数据库中。
- 艾克索拉登录管理器服务器向PlayFab发送更改用户数据的请求。
- 如果设置了帐户确认:
- 如果使用Login API调用集成该解决方案,则认为注册完成。
- 如果使用登录管理器小组件集成该解决方案,则用户被重定向到包含以下消息的页面:帐户确认邮件已发送至{email address}。
PlayFab中的用户帐户确认
要设置帐户确认邮件发送,请完成下列步骤:- 按照说明在PlayFab中设置您的项目。
- 确保已完成Requirements模块中的Create an email template和Create a rule to send an email when a contact email is updated步骤。
- 联系您的客户成功经理或发送邮件至csm@xsolla.com。
注:
对于使用PlayFab的项目,已注册用户可以在未确认邮箱地址的情况下登录。
通过用户邮箱地址和密码进行认证
有两种通过用户邮箱地址和密码进行认证的方式:基于JWT标准的认证和基于OAuth 2.0协议的认证。
注:
如果艾克索拉存储中没有该用户数据,则:
- 在其中写入用户数据。
- 艾克索拉登录管理器发送请求更改PlayFab中的数据。
基于JWT标准的认证过程
- 客户端向艾克索拉登录管理器服务器发送Auth by username and password请求。
- 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
- 艾克索拉登录管理器服务器生成用户JWT,其中
- PlayFab请求响应中的PlayFabId值写入
external_account_id
声明。 - PlayFab请求响应中的SessionTicket值写入
session_ticket
声明。 - PlayFab请求响应中的EntityToken值写入
entity_token
、entity_id
、entity_type
声明。
- PlayFab请求响应中的PlayFabId值写入
- 用户被重定向至包含一个查询参数
token
的login_url
。用户JWT写入token
参数中。
基于OAuth 2.0协议的认证过程
- 客户端向艾克索拉登录管理器服务器发送包含
redirect_uri
参数的Auth by username and password请求。 - 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
- 艾克索拉登录管理器服务器返回在查询参数中包含
code
的login_url
和所传的redirect_uri
参数。 - 用户被重定向至包含查询参数
code
的redirect_uri
。 - 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的
code
交换用户JWT。 - 艾克索拉登录管理器服务器生成用户JWT,其中:
- PlayFab请求响应中的PlayFabId值写入
external_account_id
声明。 - PlayFab请求响应中的SessionTicket值写入
session_ticket
声明(如果Auth by Username and Password请求中传入了scope=playfab
)。 - PlayFab请求响应中的EntityToken值写入
entity_token
、entity_id
、entity_type
声明。
- PlayFab请求响应中的PlayFabId值写入
通过Twitch进行身份验证
需在PlayFab中设置社交网络以通过Twitch认证用户。有两种通过Twitch进行认证的方式──基于JWT标准和基于OAuth 2.0协议的认证。
注:
如果PlayFab中的用户记录关联了该Twitch帐户,则视作同一个帐户。
基于JWT标准的认证过程
- 客户端向艾克索拉登录管理器服务器发送Auth via social network请求。
- 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
- 用户数据写入艾克索拉数据库。
- 艾克索拉登录管理器服务器生成用户JWT,其中
- PlayFab请求响应中的PlayFabId值写入
external_account_id
声明。 - PlayFab请求响应中的SessionTicket值写入
session_ticket
声明。 - PlayFab请求响应中的EntityToken值写入
entity_token
、entity_id
、entity_type
声明。
- PlayFab请求响应中的PlayFabId值写入
- 用户被重定向至包含一个查询参数
token
的login_url
。用户JWT写入token
参数中。
基于OAuth 2.0协议的认证过程
- 客户端向艾克索拉登录管理器服务器发送包含
redirect_uri
参数的Auth via social network请求。 - 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
- 用户数据写入艾克索拉数据库中。
- 艾克索拉登录管理器服务器发送请求更改PlayFab中的数据。
- 用户被重定向至包含查询参数
code
的redirect_uri
。 - 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的
code
交换用户JWT。 - 艾克索拉登录管理器服务器生成用户JWT,其中:
- PlayFab请求响应中的PlayFabId值写入
external_account_id
声明。 - PlayFab请求响应中的SessionTicket值写入
session_ticket
声明(如果Twitch认证请求中传入了scope=playfab
)。 - PlayFab请求响应中的EntityToken值写入
entity_token
、entity_id
、entity_type
声明。
- PlayFab请求响应中的PlayFabId值写入
设置Twitch认证
- 创建Twitch帐户并获取Twitch Client ID。
- 前往发布商帐户,然后打开您的项目 > 登录管理器。
- 在所需的登录管理器项目面板中单击配置。
- 前往身份认证区块,然后选择社交网络登录部分。
- 前往Twitch社交网络面板中单击⚙图标,然后选择设置。
- 在应用程序ID字段中输入您的Twitch Client ID。
- 如需要,更改其他设置。
- 单击连接。
- 在PlayFab帐户中设置Twitch。
- 如果已通过Login API调用集成了登录管理器产品:
用户密码重置
用户密码重置流程如下:
- 客户端将向艾克索拉登录管理器服务器发送Reset password请求。
- 艾克索拉登录管理器服务器将该密码重置请求发送给PlayFab。
- 新密码写入PlayFab中。
用户拦截
您可以通过发布商帐户拦截用户。拦截的用户无法进行认证。拦截会有记录且记录仅保存在艾克索拉侧。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。继续阅读
有用链接
如何连接PlayFab存储发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。