在iOS上保存登录凭据

kqlmhetl  于 2023-10-21  发布在  iOS
关注(0)|答案(4)|浏览(132)

我正在实现一个应用程序,第一个视图是登录视图。它包含3个文本字段:用户名和密码
我想让应用程序保存登录信息,以免用户每次打开应用程序时都要写入这些信息。当他们退出时就会被删除。
如何做到这一点?如何读/写文件?

qnzebej0

qnzebej01#

使用钥匙链存储登录密码。下面是简单的代码
储存:

KeychainItemWrapper *keychain = 
 [[KeychainItemWrapper alloc] initWithIdentifier:@"MyAppLoginData" accessGroup:nil];
[keychain setObject:loginStr forKey:(id)kSecAttrAccount];
[keychain setObject:pwdStr forKey:(id)kSecValueData];

要查询:

NSString *login = [keychain objectForKey:(id)kSecAttrAccount];
NSString *pwd = [keychain objectForKey:(id)kSecValueData];

要删除:

[keychain resetKeychainItem];

您需要首先在项目中添加KeychainItemWrapper. h和KeychainItemWrapper.m(此处)。
使用密钥链存储数据的另一个重要方面是
1.即使在应用卸载-安装之后,数据也是持久的
1.数据可以在您的应用程序之间共享(需要具有相同的捆绑包种子ID,从here读取)。想想所有应用的单点登录。
1.数据仅在设备重置时从设置中删除。

qf9go6mv

qf9go6mv2#

这种敏感数据通常存储在密钥链中。类似问题here

irlmq6kh

irlmq6kh3#

检查keychainServConcepts以保存所需数据
检查STUtils是否安全保存密码和密码。
您还可以使用NSUserDefault以userName作为键来保存数据,并在需要时删除。

yruzcnhs

yruzcnhs4#

To Save:

    [[NSUserDefaults standardUserDefaults] setValue:AccountTxtField.text forKey:@"Account"];
    [[NSUserDefaults standardUserDefaults] setValue:UserTxtField.text forKey:@"Username"];
    [[NSUserDefaults standardUserDefaults] setValue:passwordTxtField.text forKey:@"password"];
    [[NSUserDefaults standardUserDefaults] synchronize];

To Read:

    NSString * _Account = [[NSUserDefaults standardUserDefaults] stringForKey:@"Account"];
    NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"];
    NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];

logOut:设置所有值为空。

相关问题