如何通过REST API验证基于bubble.io的Google Cloud Storage Web应用?
在Bubble.io中通过HTTP请求对接Cloud Storage API的服务账号认证方案
步骤1:准备服务账号密钥
在Google Cloud控制台的目标项目中,进入IAM与Admin > 服务账号页面:
- 创建新服务账号或选择已有账号,为其分配Cloud Storage权限(如
Storage Object Creator、Storage Admin) - 生成并下载JSON格式的密钥文件,保存好其中的
client_email、private_key、token_uri字段
步骤2:获取OAuth2访问令牌
Cloud Storage REST API要求使用Bearer令牌认证,服务账号需通过JWT签名换取令牌。由于Bubble原生不支持RSA签名,推荐两种实现方式:
方式一:借助Bubble加密插件
- 安装Bubble的第三方加密插件(支持RSA-SHA256签名)
- 构造JWT的Header与Payload:
Header:
Payload(替换占位符):{"alg":"RS256","typ":"JWT"}{ "iss": "你的服务账号邮箱", "scope": "https://www.googleapis.com/auth/devstorage.read_write", "aud": "https://oauth2.googleapis.com/token", "exp": {{当前时间戳 + 3600}}, "iat": {{当前时间戳}} } - 将Header和Payload分别Base64编码后用
.拼接,再用服务账号的private_key进行RSA-SHA256签名,得到完整JWT - 向
token_uri发送POST请求,参数:grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=生成的JWT - 解析响应获取
access_token,该令牌有效期1小时
方式二:搭建轻量中间层
如果不想用插件,可部署一个简单的后端函数(如Google Cloud Functions、Vercel Edge Functions):
- 中间层接收Bubble传入的必要参数(或直接在函数中配置服务账号密钥)
- 在中间层完成JWT签名、请求令牌的逻辑
- Bubble向中间层发送HTTP请求,直接获取返回的
access_token
步骤3:调用Cloud Storage API
拿到access_token后,在Bubble的HTTP请求中添加请求头:
Authorization: Bearer {你的access_token}
之后即可正常调用Cloud Storage的REST接口(如上传文件、查询存储桶等),注意按照API文档传递对应的参数与请求体。
内容的提问来源于stack exchange,提问作者Théo Moura
相关产品推荐
相关产品推荐

