Как получить токен доступа к GCP Identity-Aware-Proxy от iOS (Swift) - PullRequest
0 голосов
/ 30 марта 2020

Я хочу получить токен доступа для доступа к Identity-Aware-Proxy GCP из iOS (Swift).

Я просто добавляю google-auth-library-swift pod и попытался использовать ServiceAccountTokenProvider , и получил вероятный accessToken. Но даже когда я добавил его в заголовок с ключевым словом Bearer, я не смог получить доступ к API, защищенному IAP.

Я сомневаюсь в формате маркера доступа, потому что, когда я пытался использовать Java с этим примером кода , формат токена отличается от формата, который я получил в библиотеке swift.

Знаете ли вы, как получить токен доступа для доступа к API, защищенному IAP?

let scopes = ["https://www.googleapis.com/auth/iam"]
guard let url = Bundle.main.url(forResource: Constants.GAE.serviceAccountCredentialJSON, withExtension: nil) else {
    fatalError("Failed To read JSON")
}
guard let provider = ServiceAccountTokenProvider(credentialsURL: url, scopes: scopes) else {
    fatalError("Failed To create ServiceAccountTokenProvider")
}

do {
    try provider.withToken { [weak self] (token, error) in
        guard let self = self else { return }
        if let token = token, let accessToken = token.AccessToken {
            logger.debug("GAE TOKEN with token \(accessToken)")
            return
        } else {
            if let error = error {
                print("GAE TOKEN with error \(error.localizedDescription)")
                return
            } else {
                let error = IdentityAwareProxyError.failedToGetAccessToken
                print("GAE TOKEN with error \(error.localizedDescription)")
                return
            }
        }
    }
} catch let error {
    print("GAE TOKEN error \(error.localizedDescription)")
}
...