у экземпляра Firebase DecodedIdToken есть собственные претензии? - PullRequest
0 голосов
/ 29 марта 2020

Мы можем получить пользовательские утверждения пользователя во внешнем интерфейсе следующим образом:

const { claims } = await firebase.auth().currentUser.getIdTokenResult()

Однако в облачных функциях каждая вызываемая облачная функция имеет контекст:

context: functions.https.CallableContext

Благодаря этому мы можем получить доступ к «токену пользователя» запрашивающего пользователя следующим образом:

context.auth.token

Этот токен является DecodedIdToken (см. Ссылку для справочных документов)

Однако мне интересно, могу ли я получить доступ к пользовательским утверждениям этого пользователя на этом DecodedIdToken следующим образом:

const { claims } = context.auth.token

Поскольку в документации ничего не говорится о пользовательских утверждениях ...

1 Ответ

1 голос
/ 29 марта 2020

Как я читаю документацию, я предполагаю, что она содержит пользовательские утверждения. Посмотрите на его «индексируемую» функцию:

Indexable

[key: string]: any

Интерфейс, представляющий декодированный токен Firebase ID, возвращаемый методом verifyIdToken ().

То, что [key: string]: any является TypeScript, говорит о том, что он поддерживает общий поиск строк, в дополнение к конкретным c свойствам, подробно описанным отдельно. Это говорит о том, что вы должны быть в состоянии найти другие объекты в объекте, которые (вероятно) являются пользовательскими утверждениями.

Также ясно, что это то же самое, что и значение, возвращаемое verifyIdToken () Это то, как вы получаете пользовательские утверждения при работе с Admin SDK. Итак, я предлагаю просто попробовать это. Если это не работает так, как вы ожидаете, подайте запрос функции с поддержкой Firebase .

...