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)
                    }
                }
            }
        }

Есть идеи, как я могу решить эту проблему?

Заранее спасибо.

0 ответов