Php 相当于 gcloud auth print-identity-token
Php equivalent for gcloud auth print-identity-token
我的目标是通过我的 php 代码触发一个 google 云函数。为此,我需要一个身份令牌作为 Bearer,但我的服务器上没有安装 gcloud。
我有一个工作服务帐户,我通过 Google_Client ("google/apiclient": "2.10.1"):
创建了一个对象
$this->setAuthConfig($serviceJson);
$scope = [Google_Service_Compute::CLOUD_PLATFORM, 'openid', 'email'];
$this->addScope($scope);
if ($this->isAccessTokenExpired()) {
$this->fetchAccessTokenWithAssertion();
}
$this->getAccessToken()
使用此客户端我只能获取 access_token(未授权触发云功能)但 id_token 始终为空。
如何获得 id_token?是否有 php 库可以提供帮助,或者我是否需要执行单独的 POST 请求来获取 id_token?
我找到的唯一方法是这样的:
- 生成 JWT manually(根据服务帐户中的数据)
- 将它发送到 https://www.googleapis.com/oauth2/v4/token 并接收一个令牌
- 在 CF 调用中使用令牌
我的目标是通过我的 php 代码触发一个 google 云函数。为此,我需要一个身份令牌作为 Bearer,但我的服务器上没有安装 gcloud。 我有一个工作服务帐户,我通过 Google_Client ("google/apiclient": "2.10.1"):
创建了一个对象$this->setAuthConfig($serviceJson);
$scope = [Google_Service_Compute::CLOUD_PLATFORM, 'openid', 'email'];
$this->addScope($scope);
if ($this->isAccessTokenExpired()) {
$this->fetchAccessTokenWithAssertion();
}
$this->getAccessToken()
使用此客户端我只能获取 access_token(未授权触发云功能)但 id_token 始终为空。
如何获得 id_token?是否有 php 库可以提供帮助,或者我是否需要执行单独的 POST 请求来获取 id_token?
我找到的唯一方法是这样的:
- 生成 JWT manually(根据服务帐户中的数据)
- 将它发送到 https://www.googleapis.com/oauth2/v4/token 并接收一个令牌
- 在 CF 调用中使用令牌