Проблемы с аутентификацией OAuth2 в консоли FirebaseJavascript

Форум по Javascript
Ответить
Anonymous
 Проблемы с аутентификацией OAuth2 в консоли Firebase

Сообщение Anonymous »

Я ничего не знаю о коде. Я использовал AI Console Firebase Console, чтобы помочь мне построить веб -сайт. Я поражен, что это работает, если честно, но я ударил стену. По причинам, конкретным для приложения, я делаю, я позволяю пользователям регистрироваться без электронной почты. Система создает «фиктивное» электронное письмо на бэкэнд для целей аутентификации. Я пытаюсь внедрить систему, чтобы позволить пользователю учетной записи уровня администратора, которая вложена «выше» в базе данных Cloud Firestore кнопку, которая позволит ему сбросить пароль учетной записи, вложенную под них. Система работала на некоторое время, но потом что -то пошло не так в коде, и теперь она сломана. Но в любом случае, я получаю ошибку проверки OAuth2, когда пытаюсь сбросить пароль внутри самого приложения в учетной записи уровня администратора. Как я уже сказал ... это работало, и теперь это не так. Итак .... Я попросил ИИ сгенерировать сообщение, сообщающее мне, в чем проблема, и теперь я ищу понимания. Вот пост, сгенерированный для меня ИИ. Одной из необходимых функций является для учителя, чтобы иметь возможность сбросить пароль ученика. Учетные записи студентов создаются с фиктивными электронными письмами (например, student_id@project.firebaseapp.com), поэтому стандартный поток электронной почты «Забывший пароль» невозможен. Сброс должен быть инициирован учителем. < /P>
Настройка: < /p>
Структура: next.js 14 (app router) < /p>
Хостинг: хостинг приложения Firebase (node.js 20 Runtime) < /p>
Back Back Logic: Сервер. SDK.
Инициализация SDK Admin SDK (SRC/Lib/Firebase-admin.ts): я инициализации Admin SDK с использованием стандартного, рекомендованного подхода для управляемых облачных сред, без явных учетных данных.

Код: Выделить всё

// src/lib/firebase-admin.ts
import { initializeApp, getApp, getApps } from 'firebase-admin/app';
import { getAuth } from 'firebase-admin/auth';

// Per official documentation for cloud environments
const app = getApps().length ? getApp() : initializeApp();
const adminAuth = getAuth(app);

export { adminAuth };
Код сбоя (SRC/AI/Flows/Manage-Student.ts): это действие сервера, которое вызывается с панели панели учителя.
// src/ai/flows/manage-student.ts
'use server';
import { adminAuth } from '@/lib/firebase-admin';

export async function resetStudentPassword(input: ResetPasswordInput): Promise {
try {
// This is the call that fails
await adminAuth.updateUser(input.studentUid, {
password: input.newPassword,
});
return { success: true };
} catch (e: any) {
console.error("Error in resetStudentPassword:", e);
// The error is caught here
return { success: false, error: e.message };
}
}
< /code>
Проблема: когда вызывается функция ResetStudentPassword, она последовательно сбой со следующей ошибкой: < /p>
Faile_precondition: В этом запросе отсутствует действительный ключ API, токен OAuth 2.0 или cookie. См. Https://cloud.google.com/docs/authenticationобразное/> Что я проверил, и почему я запутался:
Другие звонки SDK администратора работают нормально. В том же приложении у меня есть другие бэкэнд -функции, которые успешно используют Admin SDK для взаимодействия с Firestore (чтение и написание документов). Проблема аутентификации, по-видимому, изолирован только для функций аутентификации Firebase. Я предоставил оба следующих роля быть безопасными:
Admin Admine Api Firebase (что должно быть достаточным)
Администрация аутентификации Firebase Admin
: «API« Identity Toolkit Toolkit »(который управляет автором FireBase) включен в свой Google Cloud Project. Секрет в хостинге приложения и явно инициализация администратора SDK с помощью initializeapp ({retreation: admin.credential.cert (...)}). Это привело к той же самой той же «отсутствующей ошибке» API -ключа », которая, по -видимому, указывает на то, что среда переоценивает или игнорирует ручную конфигурацию. Учитывая, что операции Firestore работают, он доказывает, что Admin SDK правильно подлинно подходит для некоторых услуг. Зачем это не удастся специально для вызова Auth (). UpdateUser () с этой конкретной ошибкой? Такое ощущение, что есть особое требование для службы Auth, которую мне не хватает в среде хостинга приложений. < /P>
Я ожидал, что кнопка будет работать. Я проверил свою платформу Google Cloud и свой бэкэнд, и все разрешения и роли соответствуют должным образом для учетных записей IAM и сервисов.

Подробнее здесь: https://stackoverflow.com/questions/797 ... se-console
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»