如何通过http获取$(gcloud auth print-access-token)这个gcloudaccess-token值?
不安装gcloud如何才能获取这个access-token?
https://cloud.google.com/sdk/docs/install?hl=zh-cn
网友回复
gcloud access-token这个值谷歌cloud官方是通过gcloud 的客户端命令行获取的,需要下载到本地运行后获取
当然也有人根据这套协议写出了不需要命令行的代码,模拟了命令行的执行:
我们以cloudflare的worker为例,其他的编程语言可以通过ai更换:
// 配置变量 const PROJECT_ID = ''; const CLIENT_EMAIL = ''; const PRIVATE_KEY =""; addEventListener("fetch", (event) => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const [token, err] = await exchangeJwtForAccessToken(signedJWT) if (token === null) { console.log(`Invalid jwt token: ${err}`) return createErrorResponse(500, "api_error", "invalid authentication credentials"); } } function createErrorResponse(status, errorType, message) { const errorObject = { type: "error", error: { type: errorType, message: message } }; return new Response(JSON.stringify(errorObject), { status: status, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", }, }); } async function createSignedJWT(email, pkey) { pkey = pkey.replace(/-----BEGIN PRIVATE KEY-----|-----END PRIVATE KEY-----|\r|\n|\\n/g, ""); let cryptoKey = await crypto.subtle.importKey( "pkcs8", str2ab(atob(pkey)), { name: "RSASSA-PKCS1-v1_5", hash: { name: "SHA-256" }, }, false, ["sign"] ); const authUrl = "https://www.googleapis.com/oauth2/v4/token"; const issued = Math.floor(Date.now() / 1000); const expires = issued + 600; const header = { alg: "RS256", typ: "JWT", }; const payload = { iss: email, aud: authUrl, iat: issued, exp: expires, scope: "https://www.googleapis.com/auth/cloud-platform", }; const encodedHeader = urlSafeBase64Encode(JSON.stringify(header)); const encodedPayload = urlSafeBase64Encode(JSON.stringify(payload)); const unsignedToken = `${encodedHeader}.${encodedPayload}`; const signature = await crypto.subtle.sign( "RSASSA-PKCS1-v1_5", cryptoKey, str2ab(unsignedToken) ); const encodedSignature = urlSafeBase64Encode(signature); ret...
点击查看剩余70%
Neutralinojs与Electron的区别与不同?
浏览器跨域解决方案有哪些?
有没有开源的solo agent一句话描述就能开发直接运行的前后端应用源代码?
订单支付过程中部分商品库存不足如何处理?
python如何开发一个自定义域名后缀的邮箱系统及登录发送邮件管理web页面?
有没有开源的项目将图片视频声音文字转场特效编排自动生成剪映草稿json文件?
有没有摄像头捕获眼球转动操作鼠标的开源代码?
localstorage如何生成自增的键值对进行增删改查?
python有没有将python脚本与python运行环境一键打包成exe的代码?
nodejs如何执行浏览器中运行的js代码?