google-cloud-platform - 授权头 GCP 云函数
问题描述
我正在设置一个只能由特定服务帐户调用的云功能,我已将此服务帐户作为 Invoker 添加到我的云功能中,但是从 React 应用程序调用云功能时如何使用此服务帐户? 我已将授权标头添加到我的 Axios 调用中并获取要发送给它的令牌,我正在使用此代码https://github.com/salrashid123/google_id_token/blob/master/nodejs/GoogleIDToken.js和在 Authorization 标头中发送它。
解决方案
服务帐户旨在识别“没有人工请求者”,我的意思是机器对机器。服务帐户密钥文件包含秘密,每个秘密都必须保密。您不能在公共应用程序中使用此秘密,否则您的秘密不再是秘密!
对于您的 ReactApp,您有一个人工登录的应用程序。他有自己的秘密(例如登录密码)。因此是他自己的 JWT 令牌。因此,有2个解决方案:
- 您的用户拥有 Google 帐户(gmail、gsuite、云身份...),您可以直接将他添加为 Cloud Function Invoker
- 或者,您必须通过后端。您的 React 应用程序使用用户身份调用后端,您在后端执行自己的安全检查。此后端使用服务帐户调用 Cloud Function 并将答案转发给 React 应用程序。
推荐阅读
- sapui5 - 为什么模型上的刷新不起作用?
- javascript - 云函数返回 NULL
- spring - Spring + Eureka Connection 拒绝注册服务
- mysql - 如何将不同表中的数据添加到 mySQL 中的一个新表中?
- kubernetes - 如何获取 Kubernetes pod 的状态历史/沿袭
- javascript - Webpack 包含用于动态导入的目录
- django - Django:在组合框中显示来自外键模型的值并选择它
- twilio - Twilio 传真“确认页面”——如何使其具有法律约束力
- android - 在 Android 上使用 scaletype centerCrop 时如何调整 ImageView 的裁剪量?
- android - 安卓通知未显示