我尝试从桌面应用程序执行程序化身份验证(链接到教程)。我在需要IAP_CLIENT_ID的地方卡住了。使用以下代码,其中REFRESH_TOKEN是登录流中的令牌,IAP_CLIENT_ID是用于访问应用程序的主客户端ID,DESKTOP_CLIENT_ID和DESKTOP_CLIENT_SECRET是客户端如何生成此IAP_CLIENT_ID?我在哪里能找到它?
8zzbczxx1#
您需要转到控制台:
OAuth2 Client ID
IAP-App-Engine-app
ddrv8njm2#
您也可以使用gcloud cli获取客户端ID,如下所示:
$ gcloud compute backend-services describe my-backend-pool --project=my-project-name --global --format="value[](iap.oauth2ClientId)"
wwwo4jvm3#
有一种非官方的方法可以使用以下代码获取客户端ID(IAP_CLIENT_ID):
IAP_CLIENT_ID
import requests from urllib.parse import urlparse, parse_qs client_id = None requires_iap = False url = "https://myservice.company.com/" response = requests.get(url, allow_redirects=False) if response.status_code == 302: location = response.headers.get('location') query = parse_qs(urlparse(location).query) or {} if 'client_id' in query: client_id = query['client_id'][0] requires_iap = True if requires_iap: print(f"Server requires IAP, IAP_CLIENT_ID={client_id}") else: print("Server does not require IAP")
由于这依赖于内部重定向,将来可能会发生变化,请不要盲目依赖。
3条答案
按热度按时间8zzbczxx1#
您需要转到控制台:
OAuth2 Client ID
IAP-App-Engine-app
的行ddrv8njm2#
您也可以使用gcloud cli获取客户端ID,如下所示:
wwwo4jvm3#
有一种非官方的方法可以使用以下代码获取客户端ID(
IAP_CLIENT_ID
):由于这依赖于内部重定向,将来可能会发生变化,请不要盲目依赖。