Войдите в систему с помощью Apple - ASAuthorizationAppleIDProvider уже вошел в систему, но не найден

недавно изучаю SiwA на

https://fluffy.es/sign-in-with-apple-tutorial-ios/

Я пытался учиться шаг за шагом, однако, когда я использовал "ASAuthorizationAppleIDProvider", я столкнулся с некоторой проблемой с проводным подключением. Я сохранил идентификатор пользователя в локальном, но он возвращает notfound при использовании ASAuthorizationAppleIDProvider. Я также удаляю Apple ID, который использовался ранее в

Настройки> Apple ID> Пароль и безопасность> Приложения, использующие ваш Apple ID

Но при повторном входе в систему он по-прежнему не возвращается. Вот мой код.

extension LoginViewController: ASAuthorizationControllerDelegate{
    func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
        print("something bad", error)
    }
    func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
        if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential{
            UserDefaults.standard.set(appleIDCredential.user, forKey: appleAccount.userID)
        }
    }
}
if let userID = UserDefaults.standard.string(forKey: appleAccount.userID) {
            ASAuthorizationAppleIDProvider().getCredentialState(forUserID: userID, completion: {
                credentialState, error in
                print(userID)
                switch(credentialState){
                case .authorized:
                    print("user remain logged in, proceed to another view")
                    self.performSegue(withIdentifier: "LoginToUserSegue", sender: nil)
                case .revoked:
                    print("user logged in before but revoked")
                case .notFound:
                    print("user haven't log in before")
                default:
                    print("unknown state")
                }
            })
        }

Он действительно печатает идентификатор пользователя, поэтому идентификатор пользователя не равен нулю. Но кажется, что он не совпадает с Apple ID, поэтому показывает, что он не найден? Вот ошибка

[core] Запрос состояния учетных данных возвращен с ошибкой: Error Domain = AKAuthenticationError Code = -7073 "(null)"


person Yi-An    schedule 22.05.2020    source источник


Ответы (1)


Проблема вызвана симулятором, если мы перейдем на устройство, такой проблемы не будет. См. Ссылку:

не удалось получить credential.state и getCredentialStateForUserID

person Yi-An    schedule 22.05.2020
comment
У меня такая же проблема, но на устройстве :( - person marc hoffman; 12.08.2020