钥匙串

2016-08-31  本文已影响48人  ShenYj

保存用户信息使用对比(偏好设置&钥匙串)

- (void)saveUserInfo {
    // 偏好设置
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject: self.usernameText.text forKey:@"username"];

    // 钥匙串
    NSString *bundleId = [NSBundle mainBundle].bundleIdentifier;
    [SSKeychain setPassword:self.pwdText.text forService:bundleId account:@"password"];
}

获取用户信息使用对比(偏好设置&钥匙串)

- (void)loadUserInfo {
    // 偏好设置
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    self.usernameText.text = [defaults stringForKey:@"username"];

    // 钥匙串
    NSString *bundleId = [NSBundle mainBundle].bundleIdentifier;
    self.pwdText.text = [SSKeychain passwordForService:bundleId account:@"password"];
}

说明:
1.虽然是用来保存账号密码的,但使用上和偏好设置十分相似,只要保证键值对应,即可存储
2.ForService用来作为一个唯一的标识,通常设置为bundleIdentifier
3.偏好设置存储在沙盒的Preferences中,而钥匙串的存储路径我们并不知道

/// 所有账户
+ (NSArray *)allAccounts;
/// 获取所有账户信息
+ (NSArray *)accountsForService:(NSString *)serviceName;
/// 获取账号密码
+ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account;
/// 删除账号密码
+ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account;
/// 将账号密码保存在钥匙串
+ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account;
上一篇 下一篇

猜你喜欢

热点阅读