Я использую аутентификацию 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
фреймворк - это наследие, которое никто не использует?