Authentication 对承载令牌使用JSON Web令牌和Firestore支持
我想在Firestore中提供身份验证和授权支持,同时使用node.js应用程序与Firestore对话。用户通过URL(http.get和嵌入令牌)进行交互,并与node.js应用程序进行交互。该应用程序接受用户的一些输入,然后与firestore对话。客户端执行安全活动所需的访问令牌都嵌入在GET url中(id+访问令牌) 我这里有一个流,我想验证这个流是正确的还是我遗漏了什么?我找不到最明确的文件来指导我接下来的步骤 首先,在生成GET url之前,我生成JWT令牌部分: 用于生成JWT令牌的函数如下所示: //生成JWT令牌Authentication 对承载令牌使用JSON Web令牌和Firestore支持,authentication,authorization,jwt,google-cloud-firestore,bearer-token,Authentication,Authorization,Jwt,Google Cloud Firestore,Bearer Token,我想在Firestore中提供身份验证和授权支持,同时使用node.js应用程序与Firestore对话。用户通过URL(http.get和嵌入令牌)进行交互,并与node.js应用程序进行交互。该应用程序接受用户的一些输入,然后与firestore对话。客户端执行安全活动所需的访问令牌都嵌入在GET url中(id+访问令牌) 我这里有一个流,我想验证这个流是正确的还是我遗漏了什么?我找不到最明确的文件来指导我接下来的步骤 首先,在生成GET url之前,我生成JWT令牌部分: 用于生成JWT
function getJWT() {
var token = jwt.sign({
exp: Math.floor(Date.now() / 1000) + (60 * 60) * constants.JWT_TOKEN_VALIDITY_HOURS,
admin: 'XXXXXXX'
}, constants.JWT_SECRET_TOKEN);
return token;
}
不记名代币:我在许多论坛上都听说,我可以在授权头中将此JWT web令牌作为“承载令牌”发送。这意味着firestore神奇地为我做了所有授权。还有什么我应该做的吗
1) 我相信我需要使用这个自定义JSON web令牌登录,并获得一个ID令牌。对吗?
从Firebase客户端SDK登录
使用Firebase Auth REST API将自定义令牌交换为ID令牌。
2) 然后,当我请求db访问时,我需要将这个ID令牌(不是JSON web令牌)传递给Cloud Firestore端点,作为设置为Bearer{YOUR_token}的授权头。。然后,您可以使用生成的ID令牌访问Firestore REST API:
想象一下,我还使用JSON访问令牌或从firestore获得的ID令牌将承载令牌嵌入到报头中
return this.http
.get(${OUR URL to app}, {
headers: new HttpHeaders().set('Authorization', Bearer ${JSON Web accessToken or ID Token})
})
用户单击具有此访问令牌的URL。他们同意条款和条件,然后我将他们重新引导到一个进行一些处理的云函数。 此JSON Web令牌被传递。我还验证了JWT令牌 使用此代码进行身份验证。
function verifyToken(token) {
try {
var decoded = jwt.verify(token, constants.JWT_SECRET_TOKEN);
var admin = decoded.admin;
if (admin == "XXXXXXXXX") {
return true;
}
return false;
} catch (err) {
console.log(err);
return false;
}
}
与此相关的任何示例都将非常有用。
我使用的相关链接
最后
https.onCall的协议规范
在
可选:授权:持票人
发出请求的登录用户的Firebase身份验证用户ID令牌。后端会自动验证此令牌,并使其在处理程序的上下文中可用。如果令牌无效,请求将被拒绝。这是我从谷歌得到的官方响应(但同样只有当用户有身份验证请求时才有效——我想这是一个有效的firebase用户),但我想知道的是,使用Json web令牌本身,我能实现这样的目标吗 只是想澄清一下,你需要一个Firebase ID令牌或一个Google令牌 要传递到云Firestore的标识OAuth 2.0令牌 端点作为授权标头设置为承载者{YOUR_TOKEN} 有关这方面的更多信息,请参阅以下链接: 此外,我们没有任何与此相关的样本,但有一个 内部要求改进我们的REST文档。我不能 与您分享任何细节或时间表,以确定何时可以实现, 不过,您可以留意我们的发行说明或Firebase博客 对于我们可能有的任何更新
我希望在stackoverflow我可能会得到更多与此相关的样品。但就目前而言,这就是我得到的一切。你有没有弄明白这一点?我已经阅读了Google/Firebase团队提供的各种教程和示例。似乎在XHR请求中添加授权:承载是将用户凭证发送到自定义后端的方式。所以你的流量对我来说是正确的。