全局存储用户ID和密码?

时间:2015-09-21 07:58:44

标签: swift2

我正在尝试通过向Web服务器发送POST请求来创建登录过程。帖子字符串包含用户在文本字段中键入的用户名和密码。

作为回复,我获得了用户ID和SHA1加密密码。由于我需要它们两个来访问服务器上的其他页面,我必须将它们全局存储在我的项目中。

所以我的问题是,最好的方法是什么?我应该创建一个USER类,我将这些项存储为属性吗?

2 个答案:

答案 0 :(得分:0)

你应该在钥匙串中存储这些细节。你也不希望这些细节在记忆中保存得多,因为这样可以更容易地窃取。您可以创建一个包含此钥匙串访问权限的类,并且只要有要求,您就可以从钥匙串中提取值(因此,如果钥匙串无法访问,因为用户已将其锁定,则他们将无法使用)

答案 1 :(得分:0)

你可以通过两种不同的方式来做到这一点,

01: -

      let Id = username.text
      let password = password.text
      let displayName = display.text

      // TO STROE DATA
      var prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
      prefs.setInteger(Id!, forKey: "USERID") // FOR INTEGER VALUES
      prefs.setInteger(password!, forKey: "USERPASSWORD")
      prefs.setObject(displayName!, forKey: "DISPLAYNAME") // FOR STRING VALUES
      prefs.synchronize()

      // FOR GET STORED DATA 

      let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
      Id.text = prefs.valueForKey("USERID") as? Int
      JId.text = prefs.valueForKey("USERJID") as? Int
      displayName.text = prefs.valueForKey("DISPLAYNAME") as? String

当您注销或要清除存储的数据时,只需使用

NSUserDefaults.standardUserDefaults().removePersistentDomainForName(NSBundle.mainBundle().bundleIdentifier!)

02: -

  1. 首先创建一个全局类

    import Foundation
    
    
    class User {
    class var sharedInstance: User {
    struct Static {
        static var instance: User?
        static var token: dispatch_once_t = 0
    }
    
    dispatch_once(&Static.token) {
        Static.instance = User()
    }
    
    return Static.instance!
    

    }

    var userId: Int?
    var VId: Int?
    var isHome: Int?
    

    }

  2. 然后将数据存储在您想要的类中

    class ViewController: UIViewController { 
    
      let user = User.sharedInstance
    
    
     override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    
        if segue.identifier == "showDetails" {
    
    
                self.user.userId = Id
                self.user.VId = VacancyId
    
    
            }
    
        }
    
    
    
     }
    

    然后检索数据: -

     class ViewController: UIViewController { 
    
      let user = User.sharedInstance
    
    
                mylabel.text = self.user.userId 
                mylabael2.text = self.user.VId
    
    
    
    
     }