Войдите с пропущенным яблоком Имя приложения в сообщении разрешения - PullRequest
1 голос
/ 31 января 2020

Я пытаюсь Sign in with Apple использовать Auth0.
Но в сообщении о разрешении имя моего приложения отображается как null

Это сообщение о разрешении.

Вы хотите войти в null с вашим Apple ID "myAppleId@email.com"?

Lo go моего приложения отображается правильно. Это имя приложения, которое показывает null

Где я могу установить имя приложения?

Редактировать: Вот как это выглядит -

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

При попытке с Auth0 вы можете go следующим способом решить эту проблему.
Шаг 1.

if #available(iOS 13.0, *) {
    // Create the authorization request
    let request = ASAuthorizationAppleIDProvider().createRequest()

    // Set scopes
    request.requestedScopes = [.email, .fullName]

    // Setup a controller to display the authorization flow
    let controller = ASAuthorizationController(authorizationRequests: [request])

    // Set delegates to handle the flow response.
    controller.delegate = self
    controller.presentationContextProvider = self

    // Action
    controller.performRequests()
}

Шаг 2
Реализуйте метод делегата и получите там код авторизации Apple.

extension ViewController: ASAuthorizationControllerDelegate {
    @available(iOS 13.0, *)
    func authorizationController(controller: ASAuthorizationController,
                                 didCompleteWithAuthorization authorization: ASAuthorization) {
        if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {
            // Success
            guard let authorizationCode = appleIDCredential.authorizationCode,
                let authCode = String(data: authorizationCode, encoding: .utf8) else {
                    print("Problem with the authorizationCode")
                    return
            }
         }
    }
}

Шаг 3
Теперь вы используете этот authCode для входа в Auth0.

func appleSignin(with authCode: String)  {
    Auth0.authentication().tokenExchange(withAppleAuthorizationCode: authCode)
        .start { result in
            switch result {
            case .success(let credentials):
            //LoginSucces
            case .failure(let error):
                //Issue with login.
            }
    }
}

В этом методе вы не показываете веб-просмотр, как для других методов входа с Auth0.
Я разместил это в сообществе Auth0 (проблема, которую я разместил здесь), и один из их инженеры ответили мне, чтобы я подошел к этому так. Проверьте это для получения дополнительной информации Войти через Apple - Auth0

0 голосов
/ 31 января 2020

Необходимо указать имя и адрес электронной почты при отправке запроса в виде запрошенных областей.

Функция для создания запроса с использованием ASAuthorizationAppleIDProvider и инициализации контроллера ASAuthorizationController для его выполнения.

@objc func handleAppleIdRequest() {
let appleIDProvider = ASAuthorizationAppleIDProvider()
let request = appleIDProvider.createRequest()
request.requestedScopes = [.fullName, .email]
let authorizationController = ASAuthorizationController(authorizationRequests: [request])
authorizationController.delegate = selfauthorizationController.performRequests()
}

Функция ниже вызывается после успешного входа.

func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
if let appleIDCredential = authorization.credential as?  ASAuthorizationAppleIDCredential {
let userIdentifier = appleIDCredential.user 
let fullName = appleIDCredential.fullName 
let email = appleIDCredential.email
print(“User id is \(userIdentifier) \n Full Name is \(String(describing: fullName)) \n Email id is \(String(describing: email))”) }}
...