我正在尝试使用 Postman 来测试在 Google Cloud Platform 上开发的 API:API 端点后面的 App Engine。
我有 JSON 格式的密钥文件:
{
"type": "service_account",
"project_id": "[[my_project_name]]",
"private_key_id": "[[private_key_id]]",
"private_key": "-----BEGIN PRIVATE KEY-----\n[[private_key]]\n-----END PRIVATE KEY-----\n",
"client_email": "[[service_account_email]]",
"client_id": "",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/[[service_account_email]]"
}
我可以使用 python 代码检索访问令牌:
import time
import google.auth.crypt
import google.auth.jwt
sa_keyfile='[[path_to_the_api_key_file]]'
sa_email='[[service_account_email]]'
audience='[[my_api_url]]'
expiry_length=3600
now = int(time.time())
payload = {
'iat': now,
"exp": now + expiry_length,
'iss': sa_email,
'aud': audience,
'sub': sa_email,
'email': sa_email
}
signer = google.auth.crypt.RSASigner.from_service_account_file(sa_keyfile)
jwt = google.auth.jwt.encode(signer, payload)
print(jwt)
如果我在 Postman 中设置OAuth 2.0
作为身份验证方法并将获得的 JWT 粘贴为Access Token
那么请求就可以正常工作了。
我想将整个 JWT 令牌操作移至 Postman 中,而不需要提前调用 Python 代码。我尝试使用Get New Access Token
来自 Postman,但这两个选项都不支持 JSON 密钥文件。
是否可以仅使用 Postman 从 JSON 密钥文件获取 JWT 令牌?