Firebase存储
如果使用Firebase存储,可实现:
注:
您可以使用Firebase扩展向用户发送电子简讯,例如促销活动或更新等。
交互过程
您可以使用艾克索拉登录管理器小组件或您的应用程序作为客户端。客户端与艾克索拉登录管理器服务器之间的交互流程如下:
- 客户端向艾克索拉登录管理器服务器发送请求。请求格式见JWT、OAuth 2.0和Password端点的说明。
- 艾克索拉登录管理器服务器向Firebase发送请求。
- 艾克索拉登录管理器服务器处理Firebase的响应并将结果返回给客户端。
- 客户端处理响应。
注:
除密码外的所有用户信息存储在艾克索拉侧。
用户注册流程
- 客户端向艾克索拉登录管理器服务器发送
Register new user 请求。 - 艾克索拉登录管理器服务器向Firebase发送注册请求。
- 用户数据写入艾克索拉数据库。
- 检查用户邮箱地址状态:
- 如果用户之前未在Firebase中验证其邮箱地址,则将从该系统收到一封验证邮件。一旦用户验证了其邮箱地址,则邮箱在艾克索拉登录管理器服务器上自动验证。
- 如果用户的邮箱地址已在Firebase中完成了验证,则用户在注册后将立即被授权并重定向到创建登录管理器项目时指定的回调URL。
通过用户邮箱地址和密码进行认证
有两种通过用户邮箱地址和密码进行认证的方式:基于JWT标准的认证和基于OAuth 2.0协议的认证。
注:
- 如果用户在艾克索拉数据库中没有记录,则会创建一条。
- 艾克索拉登录管理器服务器向Firebase请求以下用户数据,然后在艾克索拉数据库中进行更新:邮箱验证状态,以及头像和显示名称(如有)。
基于JWT标准的认证过程
- 客户端向艾克索拉登录管理器服务器发送Auth by username and password请求。
- 艾克索拉登录管理器服务器将该认证请求发送给Firebase。
- 艾克索拉登录管理器服务器生成用户JWT,其中:
- Firebase请求响应中的localId值写入
external_account_id
声明。 - Firebase请求响应中的Firebase ID token值写入
firebase_id_token
声明。 - Firebase请求响应中的Firebase refresh token值写入
firebase_refresh_token
声明。
- Firebase请求响应中的localId值写入
- 用户被重定向至包含一个查询参数
token
的login_url
。用户JWT写入token
参数中。
基于OAuth 2.0协议的认证过程
- 客户端向艾克索拉登录管理器服务器发送包含
redirect_uri
参数的Auth by username and password请求。 - 艾克索拉登录管理器服务器将该认证请求发送给Firebase。
- 艾克索拉登录管理器服务器返回在查询参数中包含
code
的login_url
和所传的redirect_uri
参数。 - 用户被重定向至包含查询参数
code
的redirect_uri
。 - 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的
code
交换用户JWT。 - 艾克索拉登录管理器服务器生成用户JWT,其中:
- Firebase请求响应中的localId值写入
external_account_id
声明。 - Firebase请求响应中的Firebase ID token值写入
firebase_id_token
声明。 - Firebase请求响应中的Firebase refresh token值写入
firebase_refresh_token
声明。
- Firebase请求响应中的localId值写入
通过社交网络进行身份验证
仅支持通过Google和Facebook进行认证。提供两种认证场景:基于JWT标准的认证和基于OAuth 2.0协议的认证。
基于JWT标准的认证过程
- 用户通过点击小组件上的按钮或通过Login API方法发起授权。
- 用户被重定向到社交网络登录页面以输入凭证。
- 社交网络向艾克索拉登录管理器服务器返回用户信息及其访问令牌。
- 艾克索拉登录管理器服务器通过Sign in with OAuth credential方法向Firebase发送包含该令牌的认证请求。
- 艾克索拉登录管理器服务器生成一个用户JWT,其中:
- Firebase请求响应中的localId值写入
external_account_id
声明。 - Firebase请求响应中的Firebase ID token值写入
firebase_id_token
声明中。 - Firebase请求响应中的Firebase refresh token值写入
firebase_refresh_token
声明中。
- Firebase请求响应中的localId值写入
- 用户被重定向至包含一个查询参数
token
的login_url
。用户JWT写入token
参数中。
基于OAuth 2.0协议的认证过程
- 用户通过点击小组件上的按钮或通过Login API方法发起授权
- 用户被重定向到社交网络登录页面以输入凭证。
- 社交网络向艾克索拉登录管理器服务器返回用户信息及其访问令牌。
- 艾克索拉登录管理器服务器通过Sign in with OAuth credential方法向Firebase发送包含该令牌的认证请求。
- 艾克索拉登录管理器服务器返回在查询参数中包含
code
的login_url
和所传的redirect_uri
参数。 - 用户被重定向至包含查询参数
code
的redirect_uri
。 - 客户端向艾克索拉登录管理器服务器发送Generate JWT请求,用收到的
code
交换用户JWT。 - 艾克索拉登录管理器服务器生成用户JWT,其中:
- Firebase请求响应中的localId值写入
external_account_id
声明。 - Firebase请求响应中的Firebase ID token值写入
firebase_id_token
声明。 - Firebase请求响应中的Firebase refresh token值写入
firebase_refresh_token
声明。
- Firebase请求响应中的localId值写入
用户拦截
您可以通过发布商帐户拦截用户。拦截的用户无法进行认证。拦截会有记录且记录仅存储在艾克索拉侧。
本文对您的有帮助吗?
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。继续阅读
有用链接
如何连接Firebase存储发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。