Firebase 身份验证更改密码失败

Firebase auth changePassword failing

对于一个特定的用户,这是失败的。对于我尝试的任何其他用户,它都有效,但对于这个用户,无论我做什么,此调用都会失败并显示 "INVALID_PASSWORD" 错误。

firebaseRef.changePassword({
  email: <email-address>,
  oldPassword: <resettoken>,
  newPassword: <newpassword>
}, function(err) {
  // {"error":{"code":"INVALID_PASSWORD","message":"The specified password is incorrect."}}
})

我试过了

  1. 使用不同电子邮件地址的相同重置密码流程的简单密码(排除新密码无效的可能性)
  2. 再次发送重置密码电子邮件并确保使用具有最新重置令牌的link
  3. 在不同的帐户上完成重设密码流程(工作正常,多次)

这里没思路了...好像只有这个帐号。

原来收件人的电子邮件客户端是 down-casing URL 中的 href,这导致令牌参数不正确(区分大小写)

这个我的link电子邮件模板(纯文本):

https://<mywebsite>.com/?email=%EMAIL%&reset_token=%TOKEN%

使用该计划文本 url^ 看来此客户使用的一封电子邮件 down-cased 和 link。解决方案是添加一个 html 模板:

<a href="https://<mywebsite>.com/?email=%EMAIL%&reset_token=%TOKEN%">https://<mywebsite>.com/?email=%EMAIL%&reset_token=%TOKEN%</a>