Firebase实时数据库安全规则中的auth.uid和auth.token.sub有什么区别
问题描述:
Firebase实时数据库安全规则中的auth.uid
和auth.token.sub
有什么区别?Firebase实时数据库安全规则中的auth.uid和auth.token.sub有什么区别
我假设他们是相同的(用户只有1个用户ID),但他们有不同的描述,很想知道一个明确的答案。
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。
所以这意味着在token.sub中你有用户的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/verify-id-tokens
希望链接是有帮助的。