Я хочу получить токен доступа для доступа к 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)")
}