【发布时间】: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,这意味着当用户输入错误的先前密码时我们无法提醒用户
标签: ios passwords firebase firebase-security