169 похожих чатов

Привет, Как правильно отправлять и использовать пермишини в кастомном токене для

использования в рулах 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"
}
}

можете что-то посоветовать или дать ссылку на хороший пример а то что то ни в доке ни в гугле не могу найти решения или я не туда рою

3 ответов

18 просмотров

https://firebase.google.com/docs/auth/admin/custom-claims#set_and_validate_custom_user_claims_via_the_admin_sdk

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта