2016-12-01 102 views
2

Firebase實時數據庫安全規則中的auth.uidauth.token.sub有什麼區別?Firebase實時數據庫安全規則中的auth.uid和auth.token.sub有什麼區別

我假設他們是相同的(用戶只有1個用戶ID),但他們有不同的描述,很想知道一個明確的答案。

auth.uid:唯一的用戶ID,保證在所有提供者中唯一。

auth.token.sub:用戶的Firebase UID。這在一個項目中是獨一無二的。

乾杯

回答

2

它們完全一樣。提供了auth.uid用於向後兼容(auth.token並未用於存在於安全規則中)並且易於使用:sub對於ID而言不是一個通常理解的術語,而uid有點易於理解,而且您也不會必須潛入令牌內容。

3

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

希望鏈接是有幫助的。

相關問題