Node.js 如何验证最终用户身份验证令牌(使用Firebase auth)以调用google云运行端点?
请帮助最终用户使用firebase身份验证在云中运行身份验证 简要说明: 我提交授权:来自firebase函数的Bear+idToken头,idToken通过电子邮件/密码验证firebase用户user1。 我将其提交到云运行实例,并为此user1设置了云运行调用程序角色。 但在云运行日志中,我看到以下错误: 未授权该请求调用此服务。阅读更多 我做错了什么?如何从通过身份验证的用户调用的firebase函数调用云运行端点调用Node.js 如何验证最终用户身份验证令牌(使用Firebase auth)以调用google云运行端点?,node.js,firebase,authentication,firebase-authentication,google-cloud-run,Node.js,Firebase,Authentication,Firebase Authentication,Google Cloud Run,请帮助最终用户使用firebase身份验证在云中运行身份验证 简要说明: 我提交授权:来自firebase函数的Bear+idToken头,idToken通过电子邮件/密码验证firebase用户user1。 我将其提交到云运行实例,并为此user1设置了云运行调用程序角色。 但在云运行日志中,我看到以下错误: 未授权该请求调用此服务。阅读更多 我做错了什么?如何从通过身份验证的用户调用的firebase函数调用云运行端点调用 更多详情: 我有一个简单的firebase应用程序,带有电子邮件/
更多详情: 我有一个简单的firebase应用程序,带有电子邮件/密码firebase身份验证。 当用户1时,说test@test.com如果使用电子邮件/密码进行身份验证,我将使用firebase.User.getIdToken()获取该用户的Id令牌,并将其提交给firebase函数 在firebase功能端,我提取用户令牌并将其提交给google cloud运行端点,作为授权:承载+令牌头:
export const getData = functions.https.onRequest(
async (req, response) => {
cors(req, response, async () => {
getToken(req)
.then(async (token: any) => {
const options = {
url: cloud_run.CLOUD_RUN_ENDPOINT,
headers: {
Authorization: `Bearer ${token}`,
},
};
request.get(options, async function (err, resp) {
//Processing the result
});
//etc
在google云运行中,我部署了云运行端点。
在“云运行权限”选项卡上,我为我的user1设置了云运行调用者角色test@test.com.
但当我执行上述firebase函数getData时,我在云运行日志中看到以下错误:
2020-10-29 14:30:13.498 MSK获得4010 B 0ms@root+request/1.6.1节点/v10.22.0 linux/4.4.0 linux/x64 https://
未授权该请求调用此服务。阅读更多
根据本手册:
对于
firebase身份验证:
我需要实现Identity Platform或Firebase身份验证(完成),并手动验证他们的凭据。
如何手动验证凭据?提交承载授权令牌后我应该做什么?要实现这一点,您有两种解决方案:
- 在未经验证的云运行服务中自行检查令牌。最近发生了一件大事。就我个人而言,我不喜欢这个解决方案,因为如果有攻击,这取决于你的服务来管理这个高流量,你来支付李>
- 使用代理。(旧的)云端点可以实现这一点,我在1年前(使用API密钥安全定义,但使用API密钥更改并使用它!)。它已经很老了,因为今年夏天发布了一个新的服务,名为,今天,它是一个完全由谷歌管理的云端点(今天的功能是相同的,但API网关将不断发展;不确定云端点!)