PlayFab存储

如果使用PlayFab存储,可实现以下功能:

Note
可使用向用户发送其他邮件的PlayFab方法。

交互过程

您可以使用艾克索拉登录管理器小组件或您的应用程序作为客户端。客户端与艾克索拉登录管理器服务器之间的交互流程如下:

  1. 客户端向艾克索拉登录管理器服务器发送请求。请求格式见JWTOAuth 2.0Password端点的说明。
  2. 艾克索拉登录管理器服务器向PlayFab发送请求。
  3. 艾克索拉登录管理器服务器处理PlayFab的响应并将结果返回给客户端。
  4. 客户端处理响应。

PlayFab中的用户注册

用户注册遵循此流程。您可以设置发送给用户的帐户确认邮件来结束注册流程。

用户注册流程

  1. 客户端向艾克索拉登录管理器服务器发送Register new user请求。
  2. 艾克索拉登录管理器服务器发送一个注册请求。
  3. 用户数据写入艾克索拉数据库中。
  4. 艾克索拉登录管理器服务器发送请求更改PlayFab中的数据。
  5. 如果设置了帐户确认:
    1. 如果使用API调用集成该解决方案,则注册结束。
    2. 如果使用登录管理器小组件集成该解决方案,则用户被重定向到包含以下消息的页面:帐户确认邮件已发送至{email address}
    如果未设置帐户确认,则用户在注册后自动登录。

PlayFab中的用户帐户确认

要设置帐户确认邮件发送,请完成下列步骤:

  1. 按照说明在PlayFab中设置您的项目。
  2. 确保已完成Requirements模块中的Create an email templateCreate a rule to send an email when a contact email is updated步骤。
  3. 联系您的帐户经理。

Note
对于使用PlayFab的项目,已注册用户可以在未确认邮箱地址的情况下登录。

通过用户邮箱地址和密码进行认证

有两种通过用户邮箱地址和密码进行认证的方式──基于JWT标准和基于OAuth 2.0协议的认证。

Note
如果艾克索拉存储中没有该用户数据,则:
  1. 在其中写入用户数据。
  2. 艾克索拉登录管理器发送请求更改PlayFab中的数据。

基于JWT标准的认证过程

  1. 客户端向艾克索拉登录管理器服务器发送Auth by username and password请求。
  2. 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
  3. 艾克索拉登录管理器服务器生成用户JWT,其中
    • PlayFab请求响应中的PlayFabId值写入external_account_id声明。
    • PlayFab请求响应中的SessionTicket值写入session_ticket声明。
    • PlayFab请求响应中的EntityToken值写入entity_tokenentity_identity_type声明。
  4. 用户被重定向至包含一个查询参数tokenlogin_url。用户JWT写入token参数中。

基于OAuth 2.0协议的认证过程

  1. 客户端向艾克索拉登录管理器服务器发送包含redirect_uri参数的Auth by username and password请求。
  2. 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
  3. 艾克索拉登录管理器服务器返回在查询参数中包含codelogin_url和所传的redirect_uri
  4. 用户被重定向至包含查询参数coderedirect_uri
  5. 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的code交换用户JWT。
  6. 艾克索拉登录管理器服务器生成用户JWT,其中:
    • PlayFab请求响应中的PlayFabId值写入external_account_id声明。
    • PlayFab请求响应中的SessionTicket值写入session_ticket声明(如果Auth by Username and Password请求中传入了scope=playfab)。
    • PlayFab请求响应中的EntityToken值写入entity_tokenentity_identity_type声明。

通过Twitch进行身份验证

需在PlayFab中设置社交网络以通过Twitch认证用户。有两种通过Twitch进行认证的方式──基于JWT标准和基于OAuth 2.0协议的认证。

Note
如果PlayFab中的用户记录关联了该Twitch帐户,则视作同一个帐户。

基于JWT标准的认证过程

  1. 客户端向艾克索拉登录管理器服务器发送Auth via social network请求。
  2. 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
  3. 用户数据写入艾克索拉数据库。
  4. 艾克索拉登录管理器服务器生成用户JWT,其中
    • PlayFab请求响应中的PlayFabId值写入external_account_id声明。
    • PlayFab请求响应中的SessionTicket值写入session_ticket声明。
    • PlayFab请求响应中的EntityToken值写入entity_tokenentity_identity_type声明。
  5. 用户被重定向至包含一个查询参数tokenlogin_url。用户JWT写入token参数中。

基于OAuth 2.0协议的认证过程

  1. 客户端向艾克索拉登录管理器服务器发送包含redirect_uri参数的Auth via social network请求。
  2. 艾克索拉登录管理器服务器将该认证请求发送给PlayFab。
  3. 用户数据写入艾克索拉数据库中。
  4. 艾克索拉登录管理器服务器发送请求更改PlayFab中的数据。
  5. 用户被重定向至包含查询参数coderedirect_uri
  6. 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的code交换用户JWT。
  7. 艾克索拉登录管理器服务器生成用户JWT,其中:
    • PlayFab请求响应中的PlayFabId值写入external_account_id声明。
    • PlayFab请求响应中的SessionTicket值写入session_ticket声明(如果Twitch认证请求中传入了scope=playfab)。
    • PlayFab请求响应中的EntityToken值写入entity_tokenentity_identity_type声明。

设置Twitch认证

  1. 创建Twitch帐户并获取Twitch Client ID
  2. 发布商帐户中打开项目。
  3. 在侧边栏中单击登录管理器,前往登录管理器项目 > 您的登录管理器项目 > 社交网络连接
  4. Application ID字段输入Twitch Client ID来连接Twitch.tv。
  5. 按照说明在PlayFab帐户中设置Twitch。
  6. 如果是通过API调用集成艾克索拉登录管理器,则:
    1. 获取通过Twitch进行认证的链接。使用社交网络认证调用(JWTOAuth 2.0)。
    2. 在UI中显示收到的链接。

用户密码重置

用户密码重置流程如下:

  1. 客户端将向艾克索拉登录管理器服务器发送Reset password请求。
  2. 艾克索拉登录管理器服务器将该密码重置请求发送给PlayFab。
  3. 新密码写入PlayFab中。

拦截用户

您可以通过发布商帐户拦截用户。拦截的用户无法进行认证。拦截会有记录且记录仅保存在艾克索拉侧。

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
为此页面评分
为此页面评分
我们还有其他可改进之处吗?

不想回答

感谢您的反馈!

继续阅读

上次更新时间: 2021年6月25日

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

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