Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. import Foundation
  2. import Alamofire
  3. import SwiftyJSON
  4. import JWTDecode
  5.  
  6. class AuthService {
  7.  
  8. static let instance = AuthService()
  9.  
  10. var controller = UIViewController()
  11.  
  12. let defaults = UserDefaults.standard
  13.  
  14. var isLoggedIn : Bool {
  15. get {
  16. return defaults.bool(forKey: LOGGED_IN_KEY)
  17. }
  18. set {
  19. defaults.set(newValue, forKey: LOGGED_IN_KEY)
  20. }
  21. }
  22.  
  23. var authToken: String {
  24. get {
  25. let str = UserDefaults.standard.object(forKey: TOKEN_KEY) as? String
  26. return str == nil ? "" : str!
  27. }
  28. set {
  29. defaults.set(newValue, forKey: TOKEN_KEY)
  30. }
  31. }
  32.  
  33. var refreshToken: String {
  34. get {
  35. return defaults.value(forKey: REFRESH_KEY) as! String
  36. }
  37. set {
  38. defaults.set(newValue, forKey: REFRESH_KEY)
  39. }
  40. }
  41.  
  42. var message: String {
  43. get {
  44. return defaults.value(forKey: MESSAGE) as! String
  45. }
  46. set {
  47. defaults.set(newValue, forKey: MESSAGE)
  48. }
  49. }
  50.  
  51. var error: String {
  52. get {
  53. let strError = UserDefaults.standard.object(forKey: ERROR) as? String
  54. return strError == nil ? "" : strError!
  55. //return defaults.value(forKey: ERROR) as! String
  56. }
  57. set {
  58. defaults.set(newValue, forKey: ERROR)
  59. }
  60. }
  61.  
  62. var errorEmail: String {
  63. get {
  64. let strErrorEmail = UserDefaults.standard.object(forKey: ERROREMAIL) as? String
  65. return strErrorEmail == nil ? "" : strErrorEmail!
  66. }
  67. set {
  68. defaults.set(newValue, forKey: ERROREMAIL)
  69. }
  70. }
  71.  
  72. func loginUser(email: String, password: String, complition: @escaping CompletionHandler) {
  73.  
  74. let lowerCaseEmail = email.lowercased()
  75.  
  76. let body: [String: Any] = [
  77. "email": lowerCaseEmail,
  78. "password": password
  79. ]
  80.  
  81. Alamofire.request(URL_LOGIN, method: .post, parameters: body, encoding: JSONEncoding.default, headers: BEARER_HEADER).responseJSON { (response) in
  82. if response.result.error == nil {
  83. //Using SwiftyJSON
  84. guard let data = response.data else { return }
  85.  
  86. let json = try! JSON(data: data)
  87.  
  88. self.authToken = json["data"]["data"]["token"].stringValue
  89. self.refreshToken = json["data"]["data"]["refresh"].stringValue
  90. self.message = json["message"].stringValue
  91. self.error = json["error"].stringValue
  92. print(self.error)
  93. self.isLoggedIn = true
  94. complition(true)
  95.  
  96. let jwt = try? decode(jwt: self.authToken)
  97. if jwt != nil {
  98. let userInfo = jwt!.body["data"] as? [String: Any]
  99. let userInfo2 = userInfo!["user"] as? [String: Any]
  100. let country_code = userInfo2!["country_code"]
  101. print(country_code!)
  102. } else {
  103. ErrorAthService.instance.errorUser(email: lowerCaseEmail, password: password)
  104. }
  105.  
  106.  
  107. } else {
  108. complition(false)
  109. debugPrint(response.result.error as Any)
  110. }
  111. }
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement