前提・実現したいこと
初学者のため、質問のレベルも低いかもしれません。
問題があれば随時訂正させていただくので、よろしくお願いします。
こちらのサイトを参考にAWScognitoを用いてログイン(サインイン)機能を実装したいです。
https://qiita.com/yiida10ic/items/ba0d9bdaa46a7e45fca4
発生している問題・エラーメッセージ
username・passwordを入力し、ログインボタンを押すと
Unexpectedly found nil while unwrapping an Optional value
と表示され、ログインに成功しません。
どのようにすれば解決できるでしょうか?
また、ビルド成功時に
MGIsDeviceOneOfType is not supported on this platform.
と表示されますがこちらは関係しますでしょうか?
該当のソースコード
Swift
1import UIKit 2import AWSCore 3import AWSCognitoIdentityProvider 4 5class ViewController: UIViewController { 6 7 @IBOutlet weak var emailField: UITextField! 8 @IBOutlet weak var passwordField: UITextField! 9 @IBOutlet weak var confirmationCodeField: UITextField! 10 11 var pool: AWSCognitoIdentityUserPool? 12 var user: AWSCognitoIdentityUser? 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 17 pool = AWSCognitoIdentityUserPool(forKey: "YourForKey") 18 } 19 @IBAction func signUp(_ sender: AnyObject) { 20 let username = emailField.text! 21 let password = passwordField.text! 22 let email: AWSCognitoIdentityUserAttributeType = AWSCognitoIdentityUserAttributeType() 23 email.name = "email" 24 email.value = emailField.text! 25 26 pool?.signUp(username, password: password, userAttributes: [email], validationData: nil).continueWith { task in 27 if task.error == nil { 28 print("signUp is success") 29 } else { 30 print("signUp is failure") 31 } 32 return task 33 } 34 } 35 36 37 @IBAction func confirm(_ sender: AnyObject) { 38 user = pool!.getUser(emailField.text!) 39 user?.confirmSignUp(confirmationCodeField.text!).continueWith { task in 40 if task.error == nil { 41 print("confirmSignUp is success") 42 } else { 43 print("confirmSignUp is failure") 44 } 45 return task 46 } 47 } 48 49 50 @IBAction func login(_ sender: AnyObject) { 51 user = pool!.getUser(emailField.text!) 52 let username = emailField.text! 53 let password = passwordField.text! 54 55 56 user?.getSession(username, password: password, validationData: nil).continueWith{ task in 57 if task.error == nil { 58 print("login is success") 59 } else { 60 print("login is failure") 61 } 62 return task 63 } 64 } 65} 66
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。