Firebase - 自定义重置密码登陆页面

Posted

技术标签:

【中文标题】Firebase - 自定义重置密码登陆页面【英文标题】:Firebase - Customize reset password landing page 【发布时间】:2016-10-22 07:50:21 【问题描述】:

我可以在 Firebase 中自定义密码重置的登陆页面吗?我想本地化该页面,因为我的应用程序不是英文的。有什么办法吗?

提前致谢。

【问题讨论】:

对我来说似乎很清楚 - 他正在询问如何自定义登录页面以重置密码,因为他的应用程序不是英文的。 【参考方案1】:

您可以在Firebase Console -> Auth -> Email Templates -> Password Reset 下自定义密码重置电子邮件,并将电子邮件中的链接更改为指向您自己的页面。请注意,<code> 占位符将替换为 URL 中的密码重置代码。

然后,在您的自定义页面中,您可以从 URL 读取密码重置代码并执行

firebase.auth().confirmPasswordReset(code, newPassword)
    .then(function() 
      // Success
    )
    .catch(function() 
      // Invalid code
    )

或者,您可以在显示密码重置表单之前先检查代码是否有效

firebase.auth().verifyPasswordResetCode(code)
    .then(function(email) 
      // Display a "new password" form with the user's email address
    )
    .catch(function() 
      // Invalid code
    )

https://firebase.google.com/docs/reference/js/firebase.auth.Auth#confirmPasswordReset https://firebase.google.com/docs/reference/js/firebase.auth.Auth#verifyPasswordResetCode

【讨论】:

更改自定义操作时,表单显示:“您的自定义操作 URL 适用于所有电子邮件模板”...这是否意味着我还需要实现电子邮件重置(还原)和电子邮件验证页面? applyActionCode() 是如何工作的? 能否动态更改模板中的语言? 不,您需要自己设置语言翻译 i18n【参考方案2】:

@Channing Huang 提供的答案是正确答案,但您还需要记住,它返回的错误并不总是invalid-code

检查错误是否可能已过期,用户直到稍后才打开 URL 或其他情况。如果过期,您可以再发送一封电子邮件。

【讨论】:

以上是关于Firebase - 自定义重置密码登陆页面的主要内容,如果未能解决你的问题,请参考以下文章

设计:如何自定义重置密码令牌?

laravel 5.0 中的自定义重置密码路由

Parse Server 上的自定义重置密码系统

Laravel 5.5 自定义重置密码抛出令牌不匹配

linux免密登录secure报密码过期

vivo如何更换oaid