Я реализую вход с помощью Apple и заметил, что свойства email
и fullName
возвращенного ASAuthorizationAppleIDCredential
заполняются только при самом первом входе в систему для этого Apple ID. При всех последующих входах эти свойства равны нулю.
Это ошибка iOS 13 или ожидаемое поведение?
Вот код, который я использую для запуска запроса:
@available(iOS 13.0, *)
dynamic private func signInWithAppleClicked() {
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
controller.delegate = self
controller.presentationContextProvider = self
controller.performRequests()
}
Я получаю учетные данные в этом методе делегата:
public func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
guard let credential = authorization.credential as? ASAuthorizationAppleIDCredential else { return }
let userIdentifier = credential.user
let token = credential.identityToken
let authCode = credential.authorizationCode
let realUserStatus = credential.realUserStatus
let mail = credential.email // nil
let name = credential.fullName // nil
}