Firebase Auth Password Reset: Как правильно отправить электронное письмо для сброса пароля, включая код подтверждения? - PullRequest
0 голосов
/ 23 мая 2018

Я застрял при получении Firebase для отправки электронного письма для сброса пароля, включая код подтверждения, необходимый для метода firebase.auth().verifyPasswordResetCode(code).

Я использую метод sendPasswordResetEmail(email), и электронное письмо содержит ссылкукоторый позволяет пользователям создавать новый пароль.

Поскольку я наложил некоторые ограничения на пароли (они должны включать число), это нарушило бы ограничение.

Я не могу найти ничего вДокументы о том, как отправить код подтверждения на электронную почту для сброса пароля.

Вот как я его использую:

public sendResetPasswordEmail(email: string): Promise<any> {

  return this.fireAgent.firebase.auth().sendPasswordResetEmail(email, {
    url: 'http://localhost:8100/',
    handleCodeInApp: true
  });

}

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 23 мая 2018

Насколько я знаю, Аутентификация в Firebase не позволяет вам указать тип пароля, который пользователь может вставить в URL, который вам предоставляет электронная почта для сброса пароля.Но вы должны быть в состоянии достичь этого, используя службу проверки подлинности кода проверки.

Чтобы использовать код проверки, вам необходимо добавить объект ActionCodeSetting в ваш метод sendPasswordResetEmail.Это должно выглядеть так:

var actionCodeSettings = {
  // URL you want to redirect back to. The domain (www.example.com) for this
  // URL must be whitelisted in the Firebase Console.
  url: 'https://www.example.com/finishSignUp?cartId=1234',
  // This must be true.
  handleCodeInApp: true,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  }
};

В вашем случае единственное, что вас интересует, это handleCodeInApp.Таким образом, электронное письмо предоставит вам код, который вам нужно будет вручную указать на verifyPasswordResetCode.

После этого вы можете вручную ввести новый пароль в свой клиент без использования поставщика электронной почты Firebase.Просто позвоните confirmPasswordReset("verificationCode", "newPassword") после того, как убедитесь, что код подтверждения действителен для verifyPasswordResetCode.

Надеюсь, что это поможет вам!

...