What is the best way to maintain the login credentials in iOS?

旧街凉风 提交于 2020-01-11 19:53:31

问题


I need to maintain my log-in credential for throughout the app so, I have 3 options to maintain my log-in credentials...

1 key chain
2 NSUserDefaults
3 plist

Which one is best one to choose ? Is there any other way is there to store the log-in credentials?

Thanks in advance


回答1:


I'll suggest keychain for storing the login credentials due to the security feature it provides. The keychain services on iOS provide a means to securely store content such as passwords, keys, certificates, etc.

Sensitive data like passwords and keys should be stored in the Keychain. Apple's Keychain Services Programming Guide states that

"A keychain is an encrypted container that holds passwords for multiple applications and secure services. Keychains are secure storage containers, which means that when the keychain is locked, no one can access its protected contents".

Here is two nice tutorial for you.

  1. How Not to Store Passwords in iOS
  2. Using Keychain to Store Username and Password
  3. How to secure user data



回答2:


This link is intended to make using the Mac OSX and iOS Keychains as easy as NSUserDefaults.

It is a KVO-compliant Cocoa wrapper around the Mac OSX and iOS Keychains, and the model for this wrapper is NSUserDefaults, so the intent is that for the common cases you would normally want to call:

[NSUserDefaultsController sharedUserDefaultsController]

You should be able to call

[PDKeychainBindingsController sharedKeychainBindingsController]

And for the common cases you normally would have called:

[NSUserDefaults standardUserDefaults]

You should be able to call

[PDKeychainBindings sharedKeychainBindings]

There are a couple of differences between the implementations. First, this class is only valid for strings, because that's what the Keychain accepts, so the methods that take non-string objects (like arrays and dictionaries and the like) have been omitted from the class. Secondly, right now, only "immediate mode" is implemented, so you can't set a bunch of values and then call "save" to do only one write, and there's no "revert to saved values" functionality).




回答3:


i think NSUserDefaults is simple way to store the login credentials here is a tutorial

http://www.icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/



来源:https://stackoverflow.com/questions/13466249/what-is-the-best-way-to-maintain-the-login-credentials-in-ios

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!