Я пытаюсь проверить бэкэнд idToken. Пользователь успешно вошел в систему на стороне клиента firebase, но когда я пытаюсь проверить idToken на моем бэкэнд, я получаю сообщение об этом не очень полезное сообщение
У токена идентификатора Firebase Auth ID неверная заявка "aud"
Сообщение об ошибке, похоже, стало немного более информативным и сводится к отсутствию имени проекта в ключе авторизации:
Ошибка: токен Firebase ID имеет неправильную претензию "ауди" (аудитория). Ожидаемый "stripmall-0000", но получил "617699194096-0aafcvsml0gke61d6077kkark051f3e1.apps.googleusercontent.com". Убедитесь, что маркер ID поступает из одного проекта Firebase, так как учетной записи службы, используемой для аутентификации этого SDK. Видеть https://firebase.google.com/docs/auth/server/verify-id-tokens для подробнее о том, как получить токен ID.
Кто-нибудь с малейшей идеей может ошибаться? Я правильно получаю tokenId от клиента, поэтому это не должно быть проблемой. Искренние пристрастия, если это было задано раньше или тривиально каким-либо другим способом.
firebase.initializeApp({
serviceAccount: {
"type": "service_account",
"project_id": <project id here>,
"private_key_id": <key id goes here>,
"private_key": <key goes here>
"client_email": <email goes here>,
"client_id": <my client id>,
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": <url goes here>
},
databaseURL: <my db url here>
});
router.post("/verify", function (req, res) {
firebase.auth().verifyIdToken(req.body.idToken).then(function (decodedToken) {
var uid = decodedToken.sub;
res.send(uid);
}).catch(function (error, param2) {
console.log(error); // 'Firebase Auth ID token has incorrect "aud" claim'
});
});