Skip to content

Instantly share code, notes, and snippets.

@bright23
Last active September 3, 2017 01:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bright23/96c5b8843254168f22eb5788d007f9bf to your computer and use it in GitHub Desktop.
Save bright23/96c5b8843254168f22eb5788d007f9bf to your computer and use it in GitHub Desktop.
import UIKit
class User: NSObject, NSCoder {
static let sharedInstance = User()
var name: String = ""
var email: String = ""
var password: String = ""
var rePassword: String = ""
var token: String = ""
//var userThumbNailImage: UIImage
var loginStatus: Variable<Bool> = Variable(false)
fileprivate override init() {
super.init()
loginStatus = Variable(isLoggedIn())
}
func encodeWithCoder(_ aCoder: NSCoder) {
aCoder.encode(self.email, forKey: "email")
aCoder.encode(self.name, forKey: "name")
aCoder.encode(self.password, forKey: "password")
aCoder.encode(self.rePassword, forKey: "rePassword")
aCoder.encode(self.token, forKey: "token")
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObject(forKey: "name") as! String
self.email = aDecoder.decodeObject(forKey: "email") as! String
self.password = aDecoder.decodeObject(forKey: "password") as! Int
self.rePassword = aDecoder.decodeObject(forKey: "rePassword") as! String
self.token = aDecoder.decodeObject(forKey: "token") as! String
}
final func logout() {
resetUser()
keyChain["accessToken"] = ""
loginStatus.value = false
}
final func getAccessToken() -> String {
if let accessToken = keyChain["accessToken"] {
return accessToken
} else {
return ""
}
}
final func setAccessToken(_ accessToken: String) {
keyChain["accessToken"] = accessToken
loginStatus.value = true
}
func isLoggedIn() -> Bool {
return !getAccessToken().isEmpty
}
func resetUser() {
name = ""
email = ""
password = ""
rePassword = ""
token = ""
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment