SFSafariViewController запрашивает сохранить пароль, а не сейчас параметры
Я реализую OAuth2 authentication using SFSafariViewController
после того, как яблоко отклонило мое решение, используя SFAuthenticationSession и ASWebAuthentication.
Приложение открывает URL-адрес для аутентификации, и все работает как надо. Единственное, что мне кажется странным, - это подсказка Save Password or Not now.
Это проявляется только один раз и больше никогда. Но я не могу найти где-то задокументированного, как мы можем управлять этими кнопками, и нет функций делегата, которые указывают, был ли активирован один из двух вариантов.
Есть идеи, как решить эту проблему. У меня такое чувство, что Apple отклонит это решение, поскольку в
моем коде после того, как яsuccess redirectURL and I fetch the AccessToken I take the user into the app.
@objc private func safariLoginCallBack(_ notification: Notification) {
guard let url = notification.object as? URL else {
return
}
let result = openIDHandler.getCodeFromCallbackUrl(url: url, state: state)
guard result.code != nil else {
self.hideLoader()
safariVC.dismiss(animated: true, completion: nil)
self.alertController(title: "Error", msg: ErrorConstants.ErrorMessages.SomethingWentWrong, viewController: self)
return
}
openIDHandler.downloadAndSaveTokens(code: result.code!, codeVerifier: codeVerifier) { (error) in
KeychainWrapper.standard.set(true, forKey: KeychainConstants.AppUsage.userHasLoggedInOnce)
if let error = error {
self.hideLoader()
self.alertController(title: "Error", msg: error.localizedDescription, viewController: self)
} else {
self.authenticationLayer.fetchUserAccountDetailWithCompletionHandler { (userDetail, error, statusCode) in
if let error = error {
self.hideLoader()
if statusCode == 401 || statusCode == 403 {
self.alertController(title: "Error", msg: ErrorConstants.ErrorMessages.CredentialsError, viewController: self)
return
} else {
self.alertController(title: "Error", msg: error.localizedDescription, viewController: self)
return
}
} else {
Storage.shared.account = userDetail
ClientAnalytics.sendRegisterButtonEventOnLogin()
self.setNewRootViewController(VCIdentifier: KeychainConstants.ViewControllerIdentifier.tabController)
}
}
}
}
Есть идеи, как я могу решить эту проблему?
Заранее спасибо.