Могу ли я использовать структуру учетных записей для пользовательского входа? - PullRequest
0 голосов
/ 06 июня 2018

Я использую аутентификацию OAuth2 и хочу использовать Accounts framework для этого.Все выглядело хорошо, за исключением того, что я не могу получить доступ к свойству refreshToken в ACAccountCredential.

@available(iOS 5.0, *)
open class ACAccountCredential : NSObject {
    public init!(oAuthToken token: String!, tokenSecret secret: String!)
    public init!(oAuth2Token token: String!, refreshToken: String!, expiryDate: Date!)

    // This property is only valid for OAuth2 credentials
    open var oauthToken: String!
}

Чтобы обновить accessToken, похоже, мне нужно использовать ACAccountStore.

@available(iOS 5.0, *)
open class ACAccountStore : NSObject {
    // Saves the account to the account database. If the account is unauthenticated and the associated account
    // type supports authentication, the system will attempt to authenticate with the credentials provided.
    // Assuming a successful authentication, the account will be saved to the account store. The completion handler
    // for this method is called on an arbitrary queue.
    open func saveAccount(_ account: ACAccount!, withCompletionHandler completionHandler: ACAccountStoreSaveCompletionHandler!)

    open func requestAccessToAccounts(with accountType: ACAccountType!, options: [AnyHashable : Any]! = [:], completion: ACAccountStoreRequestAccessCompletionHandler!)


    // Call this if you discover that an ACAccount's credential is no longer valid.
    open func renewCredentials(for account: ACAccount!, completion completionHandler: ACAccountStoreCredentialRenewalHandler!)
}

Есть пара вещей в ACAccountStore, которые не так понятны.Что такое account database?Это брелок, чтобы я мог использовать в других приложениях?или это какая-то частная CoreData база данных?

Я создал подкласс для переопределения renewCredential, но проблема в том, что я не могу получить доступ к значению refreshToken в ACAccountCrendential.Я делаю правильно?или этот Accounts фреймворк - это наследие, которое никто не использует?

...