Я реализую OAuth2 authentication using SFSafariViewController
после того, как Apple отклонила мое решение, используя 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)
}
}
}
}
Есть идеи, как мне решить эту проблему?
Заранее спасибо.