在没有身份验证UI的情况下更新touchIin的密码

时间:2017-08-23 09:00:40

标签: ios objective-c authentication touch-id xcode8

在启用触控ID的应用程序中,我将用户名和密码保存在钥匙串中,并将其添加到设备上添加的可用指纹中。因此,用户可以从下次开始使用触摸登录应用程序。现在当密码被更改,并且用户尝试使用触摸ID登录时,它会给出错误,这是正确的,现在当用户手动输入新密码时,我需要更新钥匙串,以便触摸登录从下次开始工作。但问题是,当我调用更新方法时,它会给我提供触摸ID提示。有没有办法更新它而不显示提示?以下是我目前的更新方法

+(BOOL) updatePassword:(NSString *)password{


    NSDictionary *query = @{
                            (id)kSecClass : (id)kSecClassGenericPassword,
                            (id)kSecAttrService : @"passwordService",
                            (id)kSecUseOperationPrompt : NSLocalizedString(@"Update Prompt", @"")
                            };

    NSData *newPassword = [password dataUsingEncoding:NSUTF8StringEncoding];

    NSDictionary *changes = @{
                              (id)kSecValueData : newPassword
                              };


    OSStatus status = SecItemUpdate((__bridge CFDictionaryRef)query, (__bridge CFDictionaryRef)changes);

    if (status == errSecSuccess) {
        return YES;
    }
    else{
        return NO;
    }
}

0 个答案:

没有答案