использования в рулах Cloud Firestore?
Мои рулси
service cloud.firestore {
match /databases/{database}/documents {
match /service/{documentId} {
allow read;
allow write: if hasFeature('SEVREG');
}
function hasFeature(feature) {
return 'perm' in request.auth.token.keys()
&& feature in request.auth.token.perm
}
}
}
Я добавил свойство в свой токен JWT
"Perm": ["SEVREG"]
и шлю токен с моего бэкэнда для авторизации на фронте
если декодировать JWT, я вижу это свойство
{
"uid": "admin",
"iss": "firebase-adminsdk-cvcte@admin.gserviceaccount.com",
"sub": "firebase-adminsdk-cvcte@admin.gserviceaccount.com",
"aud": "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
"iat": 111111111,
"exp": 1111111111,
"perm": [
"SEVREG"
]
}
но после авторизации пользователя
firebase
.auth()
.signInWithCustomToken(customToken)
.then(res => {
console.log('firebase success authenticate');
})
.catch(err => {
console.log('firebase.auth err', err);
});
когда юзер хочет отправить новые данные в Firestore DB(насколько я понимаю, мы используем другой токен JWT, что-то вроде токена сеанса и там уже нету моего пермишин свойства)
{
"iss": "https://securetoken.google.com/dev",
"aud": "dev",
"auth_time": 1111111111,
"user_id": "admin",
"sub": "admin",
"iat": 111111111,
"exp": 111111111,
"firebase": {
"identities": {},
"sign_in_provider": "custom"
}
}
можете что-то посоветовать или дать ссылку на хороший пример а то что то ни в доке ни в гугле не могу найти решения или я не туда рою
https://firebase.google.com/docs/auth/admin/custom-claims#set_and_validate_custom_user_claims_via_the_admin_sdk
Обсуждают сегодня