Guest User

Untitled

a guest
Feb 12th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.22 KB | None | 0 0
  1. func login(usernameText : String, passwordText : String){
  2. user = self.pool!.getUser(usernameText)
  3. var userString = ""
  4. print("Login Current thread (Thread.current)")
  5.  
  6. user?.getSession(usernameText, password: passwordText, validationData: nil).continue({ task in
  7. DispatchQueue.main.async {
  8. print(" Session Current thread (Thread.current)")
  9. if let err = task.error { // some sort of error
  10.  
  11. print("LOGIN FAILED")
  12. print(err)
  13. self.userConfirmed = false
  14. //print(err.userInfo["message"] as! String)
  15. }
  16. else { //Successful login!
  17.  
  18. // this gets our token from the User Pool
  19. let ret = task.result! as AWSCognitoIdentityUserSession
  20. let myToken = ret.idToken?.tokenString;
  21.  
  22. let customcedentialProvider = AWSCustomIdentityProvider(tokens: [AWSCustomIdentityProvider.CognitoTokenKey : myToken!])
  23. let credentialsProvider = AWSCognitoCredentialsProvider(regionType: CognitoConstants.COGNITO_REGIONTYPE, identityPoolId: CognitoConstants.COGNITO_IDENTITY_POOL_ID, identityProviderManager: customcedentialProvider)
  24. let configuration = AWSServiceConfiguration(region: CognitoConstants.COGNITO_REGIONTYPE, credentialsProvider:credentialsProvider)
  25. AWSServiceManager.default().defaultServiceConfiguration = configuration
  26.  
  27. // wipe cached creds
  28. credentialsProvider.clearKeychain()
  29. credentialsProvider.clearCredentials()
  30.  
  31. // hit it
  32. credentialsProvider.getIdentityId().continue({ (task: AWSTask!) -> AnyObject! in
  33. DispatchQueue.main.async {
  34. print("Current thread (Thread.current)")
  35. if (task.error != nil) {
  36. print("Error: ")
  37.  
  38. } else {
  39. print(credentialsProvider.identityId!)
  40. // the task result will contain the identity id
  41. let credentialsProviderUser = AWSCognitoCredentialsProvider(regionType:.usEast1,identityPoolId:credentialsProvider.identityId!)
  42.  
  43. let configurationUser = AWSServiceConfiguration(region:.usEast1, credentialsProvider:credentialsProviderUser)
  44. AWSServiceManager.default().defaultServiceConfiguration = configurationUser
  45.  
  46. // Initialize the Cognito Sync client
  47. let syncClient = AWSCognito.default()
  48. // Get User Dataset
  49. let dataset = syncClient?.openOrCreateDataset("myDataset")
  50. print(dataset?.size() as Any)
  51. let userData = dataset?.getAll()
  52.  
  53. for (key,value) in userData!{ if "(value)".characters.count > 0 {userString.append("| Key: (key) Value: (value) ");print("| Key: (key) Value: (value) ")}
  54. }
  55.  
  56. }
  57. let defaults = UserDefaults.standard
  58.  
  59. defaults.setValue(userString, forKey: defaultsKeys.keyOne)
  60. defaults.setValue(passwordText, forKey: defaultsKeys.keyTwo)
  61.  
  62. defaults.synchronize()
  63.  
  64. }
  65. return nil
  66. })
  67. }}
  68. return nil
  69. })
  70. }
  71.  
  72. // Class for custom tokens
  73. class AWSCustomIdentityProvider: NSObject, AWSIdentityProviderManager
  74. {
  75. static let FacebookTokenKey = "graph.facebook.com"
  76. static let GoogleTokenKey = "accounts.google.com"
  77. static let TwitterTokenKey = "api.twitter.com"
  78. static let CognitoTokenKey = "cognito-idp.us-east-1.amazonaws.com/us-east-1_XXXXXXXXX"
  79.  
  80. var tokens: NSDictionary = [String : String]() as NSDictionary
  81.  
  82. init(tokens: [String : String]) {
  83. self.tokens = tokens as NSDictionary
  84. }
  85.  
  86. func logins() -> AWSTask<NSDictionary> { // AWSIdentityProviderManager delegate method
  87. return AWSTask(result: tokens)
  88. }
  89. }
  90.  
  91. static let shared = AWSSyncService()
  92. private init() {
  93.  
  94. }
  95.  
  96. let syncClient = AWSCognito(forKey: CognitoConstants.cognitoSyncClientRegistrationKey)
  97.  
  98. func saveUnits(lengthUnit: LengthUnit) {
  99. let unitsDataSet = syncClient.openOrCreateDataset("usersUnit")
  100. unitsDataSet.synchronize()
  101. syncClient.listDatasets()
  102.  
  103. unitsDataSet.setValue(lengthUnit.rawValue, forKey:"abc")
  104. unitsDataSet.synchronize()
  105. }
Add Comment
Please, Sign In to add comment