Firebase存储

如果使用Firebase存储,可实现:

Note
您可以使用Firebase扩展向用户发送电子简讯,例如促销活动或更新等。

交互过程

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

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

用户注册流程

  1. 客户端向艾克索拉登录管理器服务器发送Register new user请求。
  2. 艾克索拉登录管理器服务器向Firebase发送注册请求。
  3. 用户数据写入艾克索拉数据库。
  4. 检查用户邮箱地址状态:
    • 如果用户之前未在Firebase中验证其邮箱地址,则将从该系统收到一封验证邮件。一旦用户验证了其邮箱地址,则邮箱在艾克索拉登录管理器服务器上自动验证。
    • 如果用户的邮箱地址已在Firebase中完成了验证,则用户在注册后将立即被授权并重定向到创建登录管理器项目时指定的回调URL

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

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

Note
  • 如果用户在艾克索拉数据库中没有记录,则会创建一条。
  • 艾克索拉登录管理器服务器向Firebase请求以下用户数据,然后在艾克索拉数据库中进行更新:邮箱验证状态,以及头像和显示名称(如有)。

基于JWT标准的认证过程

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

基于OAuth 2.0协议的认证过程

  1. 客户端向艾克索拉登录管理器服务器发送包含redirect_uri参数的Auth by username and password请求。
  2. 艾克索拉登录管理器服务器将该认证请求发送给Firebase。
  3. 艾克索拉登录管理器服务器返回在查询参数中包含codelogin_url和所传的redirect_uri参数。
  4. 用户被重定向至包含查询参数coderedirect_uri
  5. 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的code交换用户JWT。
  6. 艾克索拉登录管理器服务器生成用户JWT,其中:
    • Firebase请求响应中的localId值写入external_account_id声明。
    • Firebase请求响应中的Firebase ID token值写入firebase_id_token声明。
    • Firebase请求响应中的Firebase refresh token值写入firebase_refresh_token声明。

通过社交网络进行身份验证

仅支持通过Google和Facebook进行认证。提供两种认证场景:基于JWT标准的认证基于OAuth 2.0协议的认证

基于JWT标准的认证过程

  1. 用户通过点击小组件上的按钮或通过Login API方法发起授权。
  2. 用户被重定向到社交网络登录页面以输入凭证。
  3. 社交网络向艾克索拉登录管理器服务器返回用户信息及其访问令牌。
  4. 艾克索拉登录管理器服务器通过Sign in with OAuth credential方法向Firebase发送包含该令牌的认证请求。
  5. 艾克索拉登录管理器服务器生成一个用户JWT,其中:
    • Firebase请求响应中的localId值写入external_account_id声明。
    • Firebase请求响应中的Firebase ID token值写入firebase_id_token声明中。
    • Firebase请求响应中的Firebase refresh token值写入firebase_refresh_token声明中。
  6. 用户被重定向至包含一个查询参数tokenlogin_url。用户JWT写入token参数中。

基于OAuth 2.0协议的认证过程

  1. 用户通过点击小组件上的按钮或通过Login API方法发起授权
  2. 用户被重定向到社交网络登录页面以输入凭证。
  3. 社交网络向艾克索拉登录管理器服务器返回用户信息及其访问令牌。
  4. 艾克索拉登录管理器服务器通过Sign in with OAuth credential方法向Firebase发送包含该令牌的认证请求。
  5. 艾克索拉登录管理器服务器返回在查询参数中包含codelogin_url和所传的redirect_uri参数。
  6. 用户被重定向至包含查询参数coderedirect_uri
  7. 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的code交换用户JWT。
  8. 艾克索拉登录管理器服务器生成用户JWT,其中:
    • Firebase请求响应中的localId值写入external_account_id声明。
    • Firebase请求响应中的Firebase ID token值写入firebase_id_token声明。
    • Firebase请求响应中的Firebase refresh token值写入firebase_refresh_token声明。

用户拦截

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

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

不想回答

感谢您的反馈!

继续阅读

上次更新时间: 2022年3月22日

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

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