Как использовать функцию sendPasswordResetEmail () на сервере с помощью Firebase-Admin SDK? - PullRequest
0 голосов
/ 19 декабря 2018

В прошлом я использовал firebase.auth в веб-клиенте, и как только пользователь создает другого пользователя, я связываю определенную логику безопасности:

  • После создания пользователя я отправляю электронное письмочтобы проверить вашу электронную почту с помощью функции user.sendEmailVerification ().
  • Поскольку пользователь был создан другим пользователем, я назначаю пароль по умолчанию и использую функцию sendPasswordResetEmail (), чтобы пользователь регистрировал свой новый пароль.

До сих пор это работало хорошо для меня, но теперь по многим причинам мне нужно перенести эту логику на свой сервер , для этого я разрабатываю бэкэнд с облачными функциями иЯ использую Node.js Firebase Admin SDK версии 6.4.0, но не могу найти способ использовать функции user.sendEmailVerification () и sendPasswordResetEmail () для реализации той же логики на сервере, что мне ближе всегонайдено:

  • auth.generateEmailVerificationLink (электронная почта)
  • auth.generatePasswordResetLink (электронная почта)

Но он генерирует только ссылку для каждой из них, которая, кстати, единственная emailVerification (), которая мне служит, одна из generatePasswordReset всегда говорит мне:

Попробуйте сбросить пароль еще раз

Срок действия вашего запроса на сброс пароля истек или ссылка уже использовалась.

Даже если это новая ссылка, и она не использовалась.

Мои 3 вопроса будут:

  1. Как я могу заставить функции sendEmailVerification () и sendPasswordResetEmail () работать на сервере?
  2. Как я могусделать так, чтобы ссылка, сгенерированная с помощью auth.generatePasswordResetLink (email), работала правильно на сервере?
  3. Есть ли способ использовать шаблоны и электронные письма на сервере, которые находятся в firebase auth?

Заранее спасибо за то, что поделились своим опытом со мной, со всем сообществом программистов по переполнению стека.

1 Ответ

0 голосов
/ 20 декабря 2018
  1. Эти функции недоступны в firebase-admin, но вы также сможете запустить клиентский SDK (firebase) на сервере.Не совсем лучшая практика, но она сделает работу.Существует давний открытый запрос функции для поддержки этой функции в Admin SDK.Там вы найдете несколько полезных советов и обходных путей.
  2. Может быть ошибка.Я хотел бы сообщить об этом вместе с полным и минимальным воспроизведением.Admin SDK имеет тестовый пример интеграции для этого варианта использования, но он работает немного по-другому.
  3. В данный момент нет.Надеемся, что это будет рассмотрено, когда вышеуказанный запрос будет в конечном итоге выполнен.
...