gpt4 book ai didi

ios - Firebase 是否在 iOS 应用程序中使用钥匙串(keychain)?

转载 作者:行者123 更新时间:2023-11-28 07:34:29 24 4
gpt4 key购买 nike

我有一个功能来检查我的应用程序在打开时是否将密码保存到应用程序的钥匙串(keychain)中。我的功能添加到我的第一个 ViewController 中,是这样的:

- (NSString *)tapGetButton{
NSDictionary *info = [[NSBundle mainBundle] infoDictionary];
NSString *version = [info objectForKey:@"CFBundleIdentifier"];
NSDictionary *query = @{
(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService: version,
(__bridge id)kSecReturnData : (__bridge id)kCFBooleanTrue,
(__bridge id)kSecMatchLimit : (__bridge id)kSecMatchLimitOne
};

CFDataRef token = nil;
// 検索
OSStatus err = SecItemCopyMatching((__bridge CFDictionaryRef)query,
(CFTypeRef *)&token);

NSString *accessToken = nil;

// success
if (err == errSecSuccess) {
NSLog(@"Success: get token");
}
// not found
else if (err == errSecItemNotFound) {
NSLog(@"NotFound: get token");
}
else {
NSLog(@"Error: get token");
}

return accessToken;
}

此函数运行良好,我对此进行了测试并正确返回了我保存的密码和用户名。但是当启动应用程序然后得到这个时我的问题出现了,我找到了问题所在。当我启动应用程序时,在委托(delegate)的 didFinishLaunchingWithOptions 中执行初始化代码以配置 Firebase:

[FIRApp configure];

如果我删除这段代码,钥匙串(keychain)中的值会正确返回,但如果我添加这段代码,返回的值是数字 1 或者在其他情况下是一个长数字...

Firebase 是否使用钥匙串(keychain)?还有其他形式的初始化 Firebase 吗?

谢谢!

编辑:我没有使用 Firebase 来存储帐户或密码,我正在使用 Firebase 来共享事件...

最佳答案

Firebase iOS SDK经常使用钥匙串(keychain)。你可以检查源代码。例如here

我建议您定义自己的 serviceaccount 值以更准确地识别您的数据:

    let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: "for example, token name",
kSecAttrService as String: "for example, token provider name",
]

关于ios - Firebase 是否在 iOS 应用程序中使用钥匙串(keychain)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53586225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com