firebase实时数据库安全规则中的auth.uid
和auth.token.sub
有什么区别?
我认为它们是相同的(用户只有1个UID),但是他们有不同的描述,很想知道一个确定的答案。
auth.uid
:唯一的用户ID,保证在所有提供商中都是唯一的。
auth.token.sub
:用户的firebase uid。这在项目中是唯一的。
欢呼
它们完全相同。为向后兼容提供了auth.uid
(auth.token
在安全规则中不存在),并且使用易用:sub
对于ID而言并不是一个通常的术语,而uid
则更容易理解,并且您不理解必须潜入令牌内容。
auth.token.sub是代币中编码的ID。Firebase Admin SDK具有用于验证和解码ID令牌的内置方法。如果提供的ID令牌具有正确的格式,则未过期并正确签名,则该方法将返回解码的ID令牌。您可以从解码令牌中获取用户或设备的UID。
,这意味着在令牌内。您拥有用户的UID。但是,如果没有SDK,您将看不到实际值原因不是解码。这是为了安全。
如果要使用此功能,则需要用示例verifyIdToken()
方法来解码。
node.js
上的示例// idToken comes from the client app (shown above)
admin.auth().verifyIdToken(idToken)
.then(function(decodedToken) {
var uid = decodedToken.uid;
// ...
}).catch(function(error) {
// Handle error
});
链接在此处https://firebase.google.com/docs/auth/admin/admin/verify-id-tokens
希望有帮助。