简体   繁体   中英

How to save username, password securely in Keychain in swift

First time I am building iOS application, I got stuck in saving data securely. How to save sensitive data like username and password in keychain

in app I am using UserDefaults to store and retrieve like below

 UserDefaults.standard.set([unameTextfield.text], forKey: "userName")
 UserDefaults.standard.set([passwordTextfield.text], forKey: "userPassword")

for retrieving:

  let uName = UserDefaults.standard.string(forKey: "userName")
  let uPassword = UserDefaults.standard.string(forKey: "userPassword")

but I want to save data securely in Keychain, how to do that?

You are correct, UserDefault is not a good solution when it comes to store sensitive information. Keychain is what you need; however, the problem is that keychain native API is not as easy/straighforward as Userdefault Api. So, I think a great solution is to use KeychainWrapper .

First, install it. Make your cocaopod file look like this

use_frameworks!
platform :ios, '8.0'

target 'target_name' do
   pod 'SwiftKeychainWrapper'
end

Then, install it from the terminal with pod install and import it. (This is from the docs)

import SwiftKeychainWrapper    

//Set value
let saveSuccessful: Bool = KeychainWrapper.standard.set("Some String", forKey: "myKey")

//get value
let retrievedString: String? = KeychainWrapper.standard.string(forKey: "myKey")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM