2016-12-01 3 views
2

Firebase Realtime Databaseセキュリティルールのauth.uidauth.token.subの違いは何ですか?Firebaseリアルタイムデータベースセキュリティルールのauth.uidとauth.token.subの違い

私はそれらが同じであると仮定します(ユーザーは1つのuidしか持っていませんが、彼らの記述は異なります)。決定的な答えを知りたいです。

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を取得できます。

トークンの内部には、ユーザーの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

希望のリンク。

関連する問題