Как получить свежий request.auth.token пользователя в правилах безопасности при отправке запроса со старым - PullRequest
0 голосов
/ 01 октября 2019

Я обновляю customClaims через облачную функцию автоматического запуска и не могу получить доступ к таким новым customClaims в правилах безопасности.

Я работаю над веб-приложением чата. с функцией отправки запроса на добавление в друзья, и я хочу ограничить количество друзей для каждого пользователя, поэтому я использую облачную функцию автоматического запуска при создании нового документа (разговор, который определяет новую дружбу), затем увеличиваю пользовательские требования friendsNumber, чтобы иметь возможность управлять разрешением ограниченных друзейТаким образом, каждый раз, когда пользователь добавляет друзей, friendsNumber увеличивается на 1, но в правилах безопасности я всегда получаю request.auth.token.friendsNumber == 0.

. Я знаю, что запрос был отправлен по старому токену, а с помощью forcerefresh я мог получить новый. Но это желание работает со мной, потому что я обновляю friendsNumber customClaims через облачную функцию автоматического запуска.

Есть ли какие-либо методы для получения последнего токена или способа доступа к таким новым customClaims?

1 Ответ

1 голос
/ 01 октября 2019

В соответствии с документацией :

После изменения новых утверждений для пользователя с помощью Admin SDK они передаются аутентифицированному пользователю на стороне клиента через идентификатормаркер может быть выполнен следующими способами:

  • Пользователь входит в систему или повторно аутентифицируется после изменения пользовательских утверждений. Идентификационный токен, выданный в результате, будет содержать последние утверждения.
  • Существующий пользовательский сеанс обновляет свой токен идентификатора после истечения срока действия старого токена.
  • Идентификационный токен принудительно обновляется путем вызова currentUser. getIdToken (true).

Вам потребуется либо принудительно обновить токен, либо дождаться периода времени, когда клиентское приложение обновит токен для себя. До этого любые изменения в претензиях не будут видны на клиенте или в правилах безопасности.

...