Firebase admin SDK Python - не может проверить пользовательские токены

Я пытаюсь поиграть с Firebase Admin SDK для Python для создания пользовательских токенов и проверить их во время тестирования моего приложения. Проблема в том, что при попытке проверить токен я всегда получаю такую ​​ошибку:

ValueError: Firebase ID token has incorrect "aud" (audience) claim. Expected "my_project_id" but got "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit". Make sure the ID token comes from the same Firebase project as the service account used to authenticate this SDK. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token.

Я следовал руководству, чтобы создать приложение и сделать токены:

import firebase_admin
from firebase_admin import auth, credentials

cred = credentials.Certificate('/path/to/file.json')
app = firebase_admin.initialize(cred)
custom_token = auth.create_custom_token('some-uid', app=app)
auth.verify_id_token(custom_token, app=app)

и тут я получаю ошибку. Похоже, что _TokenGenarator инициализируется со значениями по умолчанию, которые возвращаются после ошибки. Я думал, что при прохождении приложения оно должно автоматически изменить их, но этого не происходит. Я что-то пропустил?

1 ответ

Решение

verify_id_token() принимает только идентификационные токены. Пользовательские токены не попадают в эту категорию. Смотрите этот контрольный пример. Поднимать ValueError это ожидаемое поведение в этом случае.

Идентификационные токены можно получить из клиентского SDK. Вы можете обменять пользовательский токен на идентификационный токен, позвонив одному из signInWithCustomToken() методы.

Другие вопросы по тегам