Изменение цели Firebase с расширением Chrome приводит к авторизации/недействительным учетным данным
Ранее я настроил и выполнил следующие шаги, и все заработало: https://firebaseopensource.com/projects/firebase/quickstart-js/auth/chromextension/readme/#license
Но клонирование этого расширения, но с другим, другим
firebase instance
и
OAuth/key
setup, я пытался выполнить шаги по крайней мере 3 раза, но каждый раз, когда это не удается на последнем шаге, вход в систему (хотя экран согласия работает)
- Загрузите новое фиктивное расширение (без
key
поле в manifest.json) (Но это точно такой же код, как и рабочий) - Получить
Chrome Extension ID
, и , нет проблем - Создать с помощью
Extension ID
, настроенный экран согласия, нет проблем, экран появляется, и я могу перейти - Добавлять
OAuth
&Public Key
кmanifest.json
- Сделать еще
OAuth Client ID
? (Я думаю, что это повторяющийся шаг, потому чтоClient ID
я должен использовать? и, на самом деле, белый список необязателен) - Использовать
chrome.identity
чтобы получить токен OAuth:
export function startAuth(interactive) {
// Request an OAuth token from the Chrome Identity API.
chrome.identity
.getAuthToken({ interactive: !!interactive }, (token) => {
if (chrome.runtime && !interactive) {
console.error('It was not possible to get a token programmatically.');
}
else if (token) {
// Authorize Firebase with the OAuth Access Token.
const credential = firebase.auth.GoogleAuthProvider
.credential(null, token);
firebase.auth()
.signInWithCredential(credential)
.catch((error) => {
// The OAuth token might have been invalidated. Lets' remove it from cache.
if (error.code === 'auth/invalid-credential') {
chrome.identity
.removeCachedAuthToken({ token }, () => {
startAuth(interactive);
});
}
});
}
else {
console.error('The OAuth Token was null');
}
});
}
Примечание. Этот код работает с другим идентификатором расширения/OAuth/ключом, поэтому сам код не может быть проблемой.
Между ними не так много изменений, это действительно ExtensionID, URL-адрес идентификатора клиента OAuth и открытый ключ.
Я выполнил шаги 3 раза, безрезультатно, каждый раз я получаю сообщение об ошибке
auth/invalid-credential
. я получаю
_token
хотя, но этот токен не будет аутентифицироваться. Как узнать, почему это?
Он пытается опубликовать сообщение по этому адресу и возвращает ошибку
400
:
POST: https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=xxxxx
Ошибка:
INVALID_IDP_RESPONSE : Invalid Idp Response: access_token audience is not for this project
Мой вывод
Должно быть что-то изменено в том, как настроить это, даже если оно работает с другими учетными данными.
1 ответ
Проблема заключалась в том, что я не создал OAuth в том же проекте в облачной консоли Google, что и проект firebase...