firebase changePassword不会因错误的旧密码而引发错误

时间:2014-05-15 22:59:20

标签: ios passwords firebase firebase-security

我们的应用使用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的问题,如果它还没有被抓住,那会让我感到惊讶。我可能只是在做头发脑力训练。有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分: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客户端的链接。如果您遇到错误,请不要犹豫提交!

答案 1 :(得分:0)

我使用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的实现,但找不到任何错误。