2016-12-01 2 views
2

Firebase Realtime Database 보안 규칙에서 auth.uidauth.token.sub의 차이점은 무엇입니까?Firebase Realtime Database 보안 규칙에서 auth.uid와 auth.token.sub의 차이점은 무엇입니까

나는 (사용자가 1 개의 uid 만 가지고 있지만) 서로 다른 설명을 가지고 있다고 가정하고 결정적인 답을 알고 싶어합니다.

auth.uid : 고유 한 사용자 ID로, 모든 제공 업체에서 고유해야합니다.

auth.token.sub : 사용자의 Firebase UID. 이는 프로젝트 내에서 고유합니다.

건배

답변

2

정확히 동일합니다. auth.uid은 이전 버전과의 호환성을 위해 제공되었으며 (auth.token은 보안 규칙에 사용되지 않았 음) 사용하기 쉬워졌습니다. sub은 일반적으로 이해되는 용어가 아니고 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

희망 연결합니다.

관련 문제