Jon*_*n K 15 firebase firebase-security
我正在尝试自动生成用户帐户,我可以使用这些帐户保存数据,然后将其提升为正确的用户名/密码帐户.有关最佳方法的任何想法吗?
我不清楚我是否可以将auth提供程序从匿名切换到密码.
Dus*_*tin 14
您可以首先使用Firebase 创建匿名登录,然后将该auth"uid"密钥存储到某种会话或cookie(取决于您正在使用的框架).虽然客户端是匿名的,但您可以将保存的数据链接到此匿名"uid".
要在用户登录后将数据传输给用户,您需要使用Firebase的onAuth()侦听器.这将在用户的身份验证数据更改时通知您.获得新的经过身份验证的uid后,您可以将存储的数据链接到新的uid并删除匿名会话.
以下是来自Firebase文档的修改后的示例:
var firebaseRef = new Firebase('https://samplechat.firebaseio-demo.com');
firebaseRef.onAuth(function(authData) {
if (authData) {
// Client is logged in, so check if it's anonymous or a real user
if (authData.provider === 'anonymous') {
// user is anonymous
// save authData.uid to some local session info, to keep track of data
} else {
// user is logged in
// transfer any data that you had stored from the anonymous session to
// this new authUser.uid
} else {
// Client is unauthenticated
// This would be a good spot to create the anonymous login
firebaseRef.authAnonymously(function(error, authData) {
if (error) {
// handle login failure
} else {
// you are now anonymously logged in, but you really don't need to do anything
// here, because your onAuth() listener is already going to catch this auth change
}
}
});
Run Code Online (Sandbox Code Playgroud)
当用户更改其身份验证信息时,Firebase不会告诉您之前的uid是什么,因此您确实需要将该匿名uid存储在某处.您也可以在不创建匿名登录的情况下完成所有操作,只需存储会话数据直到用户登录,但匿名登录提供更多一致性.
| 归档时间: |
|
| 查看次数: |
4965 次 |
| 最近记录: |