【问题标题】:firebase changePassword doesn't throw error for incorrect old passwordfirebase changePassword 不会因旧密码不正确而引发错误
【发布时间】: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


【解决方案1】:

存在影响 Firebase 简单登录的 iOS 和 Android 客户端库的错误,该错误已在最新版本(Simple Login iOS v1.3.3Simple 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 的实现,但找不到任何错误。

    【讨论】:

      猜你喜欢
      • 2022-08-11
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 2022-10-30
      • 2017-12-03
      相关资源
      最近更新 更多