authorizationController делегат didCompleteWithAuthorization, какого типа является авторизация param: ASAuthorization? - PullRequest
1 голос
/ 20 апреля 2020

Я работаю под Delphi, и я пытаюсь понять, что именно является параметром authorization: ASAuthorization в didCompleteWithAuthorization делегате ASAuthorizationControllerDelegate

// ASAuthorizationControllerDelegate function for successful authorization
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
    if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential { 
        // Create an account in your system.
        let userIdentifier = appleIDCredential.user
        let userFirstName = appleIDCredential.fullName?.givenName
        let userLastName = appleIDCredential.fullName?.familyName
        let userEmail = appleIDCredential.email

        //Navigate to other view controller
    } else if let passwordCredential = authorization.credential as? ASPasswordCredential {
        // Sign in using an existing iCloud Keychain credential.
        let username = passwordCredential.user
        let password = passwordCredential.password

        //Navigate to other view controller
    }
}

, что я не совсем понимаю здесь это то, что именно означает

if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {

и

} else if let passwordCredential = authorization.credential as? ASPasswordCredential {

означает ли это, что authorization.credential наследуется от обоих типов: ASAuthorizationAppleIDCredential & ASPasswordCredential или authorization.credential просто указатель, который может быть любым видом объекта, и нам просто нужно привести этот указатель? Как узнать с типом объекта authorization.credential? В со сценарием ios authorization.credential вернуть ASAuthorizationAppleIDCredential?

1 Ответ

0 голосов
/ 20 апреля 2020

Как указано в Apple Docs, учетные данные - это информация, предоставленная о пользователе после успешной аутентификации.

Все учетные данные наследуются от / соответствуют ASAuthorizationCredential.

Есть 3 соответствующих Типы: ASAuthorizationAppleIDCredential, ASAuthorizationSingleSignOnCredential и ASPasswordCredential.

ASAuthorizationAppleIDCredential: учетные данные, полученные в результате успешной проверки подлинности Apple ID.

Аутентификация ASAuthorizationSingleOignOd из-за однократной проверки подлинности (единый вход для пользователя) .

ASPasswordCredential: Мы можем использовать это для создания учетных данных с заданным именем пользователя и паролем.

Вы можете настроить его в соответствии с различными способами создания учетных данных. Если полученные учетные данные получены из аутентификации Apple ID, то кредит может быть типизирован для ASAuthorizationAppleIDCredential.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...