Я некоторое время работал над частью входа в мое приложение. Я пытаюсь использовать ASW Mobile Hub для этого дела. Я нашел способ заставить его работать с разными провайдерами, которые мне нужны: мой собственный пул пользователей, FB и Google.
Проблема в том, что я искал здесь и во всей документации AWS, пытаясь найти способ получить пользовательские данные (имя пользователя и некоторые другие пользовательские данные, такие как изображение, электронная почта и т. д.). Я могу получить его, если я использую FBSDK напрямую (используя FBSDKGraphRequest), но я не знаю, как это сделать, если пользователь решит войти в мой когнитивный пул пользователей. Также я не вижу, какого провайдера пользователь использовал после успеха.
Я могу найти другие способы получить это, но использование старого SDK или непосредственно вызовов Cognito изначально не то, что мне нужно. Вот код, который я использую для представления окна входа в систему:
override func viewDidLoad() {
super.viewDidLoad()
if !AWSSignInManager.sharedInstance().isLoggedIn {
presentAuthUIViewController()
}
}
func presentAuthUIViewController() {
let config = AWSAuthUIConfiguration()
config.enableUserPoolsUI = true
config.addSignInButtonView(class: AWSFacebookSignInButton.self)
config.addSignInButtonView(class: AWSGoogleSignInButton.self)
AWSAuthUIViewController.presentViewController(
with: self.navigationController!,
configuration: config, completionHandler: { (provider:
AWSSignInProvider, error: Error?) in
if error == nil {
// SignIn succeeded.
} else {
// end user faced error while loggin in, take any
required action here.
}
})
}
Итак, вопрос в том, как я могу получить соответствующую информацию о пользователе после успешного входа?