What is the best way to maintain the login credent

2019-03-11 13:28发布

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

3条回答
ゆ 、 Hurt°
2楼-- · 2019-03-11 13:42

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楼-- · 2019-03-11 13:42

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/

查看更多
冷血范
4楼-- · 2019-03-11 13:59

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
查看更多
登录 后发表回答