为什么不';身份验证和登录功能是否属于Firebase中的同一类?
在Firebase中,身份验证发生在为什么不';身份验证和登录功能是否属于Firebase中的同一类?,firebase,Firebase,在Firebase中,身份验证发生在新Firebase引用上。但是登录发生在新的FirebaseAuthClient引用上 对用户进行身份验证: var dataRef = new Firebase('some_firebase_url'); dataRef.auth(auth_token, callback_function); 在中为用户签名: var authClient = new FirebaseAuthClient(dataRef, callback_function); auth
新Firebase
引用上。但是登录发生在新的FirebaseAuthClient
引用上
对用户进行身份验证:
var dataRef = new Firebase('some_firebase_url');
dataRef.auth(auth_token, callback_function);
在中为用户签名:
var authClient = new FirebaseAuthClient(dataRef, callback_function);
authClient.login('password', some_email, some_password, function(error, token, user) {...});
为什么会这样?让所有身份验证/登录/注册函数都属于同一个类不是更有意义吗?特别是因为名为FirebaseAuthClient
(注意中间的Auth)的类甚至没有为其指定身份验证方法
这让我有点困惑,我希望一些见解能帮助我更好地理解。经过进一步的阅读和思考,我意识到,尽管它仍在文档中,
dataRef.auth
不再是必需的。创建一个新的FirebaseAuthClient
基本上取代了它
在最近的更改之前,newfirebaseauthclient
没有使用回调函数。要进行身份验证,必须调用dataRef.auth
现在,当您实例化一个新FirebaseAuthClient
时,会在此时尝试进行身份验证。以前可用于dataRef.auth
回调的信息现在可用于提供给new FirebaseAuthClient
的新回调
然而,情况略有不同。dataRef.auth
版本如下:
dataRef.auth(authtoken, function(success) { ... });
var authClient = new FirebaseAuthClient(dataRef, function(error, user) { ... });
FirebaseAuthClient
版本如下:
dataRef.auth(authtoken, function(success) { ... });
var authClient = new FirebaseAuthClient(dataRef, function(error, user) { ... });
因此,在新的操作方法中,您不仅得到一个success
布尔值(它被error
对象替换),如果身份验证成功,您还可以得到一个user
对象
在此更改之前,如果用户已成功通过身份验证,并且您希望获取他们的信息,则必须将其从localStorage或其他地方取出。现在它只是在回调中为您提供的,这是一个很好的改变
此外,以前传递给authClient.login
函数的token
参数现在是用户数据的一部分,如user.firebaseAuthToken
与此更新同时进行的是对authClient.login
工作方式的更改。它不再接受回调,而是触发传递给newfirebaseauthclient
的回调
实际上,该回调似乎是您需要为任何更改身份验证状态的FirebaseAuthClient
函数设置的唯一回调。特定的FirebaseAuthClient
函数(如登录和注销)只会更改身份验证状态,并依赖于原始回调
此外,您似乎不再需要跟踪用户的authToken来对其进行身份验证。过去的情况是,authClient.login
将使用token
param调用其回调,然后存储该令牌,并将其用于dataRef.auth(token,some_callback)
,但这不再是必需的,因为dataRef.auth
本身不再是必需的
总之,为了回答最初的问题,现在所有的身份验证方法实际上都是同一个类——FirebaseAuthClient的一部分dataRef.auth
不再是必需的,尽管它仍然在文档中,这让人困惑
将dataRef.auth
替换为new FirebaseAuthClient
,并将dataRef.auth
替换为authClient.logout
,您应该被设置
如果Firebase员工对这些索赔的有效性有任何反馈,我将不胜感激。经过进一步的阅读和思考,我意识到,尽管它仍在文档中,
dataRef.auth
不再是必要的。创建一个新的FirebaseAuthClient
基本上取代了它
在最近的更改之前,newfirebaseauthclient
没有使用回调函数。要进行身份验证,必须调用dataRef.auth
现在,当您实例化一个新FirebaseAuthClient
时,会在此时尝试进行身份验证。以前可用于dataRef.auth
回调的信息现在可用于提供给new FirebaseAuthClient
的新回调
然而,情况略有不同。dataRef.auth
版本如下:
dataRef.auth(authtoken, function(success) { ... });
var authClient = new FirebaseAuthClient(dataRef, function(error, user) { ... });
FirebaseAuthClient
版本如下:
dataRef.auth(authtoken, function(success) { ... });
var authClient = new FirebaseAuthClient(dataRef, function(error, user) { ... });
因此,在新的操作方法中,您不仅得到一个success
布尔值(它被error
对象替换),如果身份验证成功,您还可以得到一个user
对象
在此更改之前,如果用户已成功通过身份验证,并且您希望获取他们的信息,则必须将其从localStorage或其他地方取出。现在它只是在回调中为您提供的,这是一个很好的改变
此外,以前传递给authClient.login
函数的token
参数现在是用户数据的一部分,如user.firebaseAuthToken
与此更新同时进行的是对authClient.login
工作方式的更改。它不再接受回调,而是触发传递给newfirebaseauthclient
的回调
实际上,该回调似乎是您需要为任何更改身份验证状态的FirebaseAuthClient
函数设置的唯一回调。特定的FirebaseAuthClient
函数(如登录和注销)只会更改身份验证状态,并依赖于原始回调
此外,您似乎不再需要跟踪用户的authToken来对其进行身份验证。过去的情况是,authClient.login
会调用