firebase changePassword 不会因旧密码不正确而引发错误
Posted
技术标签:
【中文标题】firebase changePassword 不会因旧密码不正确而引发错误【英文标题】:firebase changePassword doesn't throw error for incorrect old password 【发布时间】:2014-05-15 22:59:20 【问题描述】:我们的应用使用 Firebase 简单登录。它似乎工作得很好,包括它们包含的大多数额外调用,如 resetPassword。
changePasswordForEmail 似乎也有效。当用户给它正确的旧密码和新密码时,它会正确地重置密码。但是当你给它错误的旧密码时,它不会抛出错误。我给它一个错误的旧密码时打印了成功和错误:
成功是:1
错误是:(null)
我们用户客户端中的代码:
[AuthClient changePasswordForEmail:email oldPw:oPw newPw:nPw completionBlock:^(NSError *error, BOOL success)
NSLog(@" Success is: %hhd",success);
NSLog(@" Error is: %@",error);
[[NSNotificationCenter defaultCenter] postNotificationNameOnMainThread:kNotificationUserUpdateAccountInfo object:self userInfo:@@"error":error?error:[NSNull null]];
if (error)
[UIAlertView showAlertWithError:error];
return;
在我们的 authClient 内部
+ (void)changePasswordForEmail:(NSString *)email oldPw:(NSString *)oPw newPw:(NSString *)nPw completionBlock:(ClientCallbackSuccess)block
FirebaseSimpleLogin *authClient = [[FirebaseSimpleLogin alloc] initWithRef:[ClientBase shared].root];
[authClient changePasswordForEmail:email oldPassword:oPw newPassword:nPw completionBlock:^(NSError *error, BOOL success)
if (block)
block(error, success);
];
如果这实际上是 api 的问题,如果它还没有被捕获,我会感到惊讶。我可能只是在做一些脑筋急转弯的事情。有什么想法吗?谢谢!
【问题讨论】:
[Firebase 工程师] 我正在研究这个问题,应该会在接下来的几天内得到答案/解决方案。 有解决方案吗?我发现了同样的问题,密码重置得很好,代码似乎都在工作,只是 SUCCESS 布尔值总是返回为 1,这意味着当用户输入错误的先前密码时我们无法提醒用户 【参考方案1】:存在影响 Firebase 简单登录的 ios 和 android 客户端库的错误,该错误已在最新版本(Simple Login iOS v1.3.3 和 Simple Login Android v1.4.1)中得到修复。
另请注意,Firebase 简单登录客户端是开源的。查看https://github.com/firebase/firebase-simple-login 以获取 Web 客户端和 Android 和 iOS 客户端的链接。如果您遇到错误,请不要犹豫,提交它们!
【讨论】:
【参考方案2】:我在使用适用于 Android 的 firebase sdk 时遇到了同样的问题。通过简单登录的身份验证工作正常,但 changePassword 始终返回错误值 null。但 API 似乎工作正常,因为 ADB 输出控制台上出现错误消息。
ADB 控制台上的服务器响应
"error":
"message": "The specified password is incorrect.",
"code": "INVALID_PASSWORD"
来自 changePassword 的响应
Error = null, success = 1
我已经在https://github.com/firebase/firebase-simple-login-java/blob/master/src/main/java/com/firebase/simplelogin/SimpleLogin.java 上查看了 api 的实现,但找不到任何错误。
【讨论】:
以上是关于firebase changePassword 不会因旧密码不正确而引发错误的主要内容,如果未能解决你的问题,请参考以下文章
Angular - 预期的调用签名:'changePassword' 有一个 typedeftslint(typedef)
Membership ChangePassword(散列)将当前密码与旧密码字段匹配
/change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 未返回 HttpResponse 对象。它返回 None 而不是