我正在构建一个网站,并决定使用纯HTML+JS和完整的Firebase,这样我就不必实现后端系统来测试新想法。这个问题的用例是,所有用户都应该经过身份验证才能访问页面(相当标准的安全功能,对吧?(。
为了实现这一点,我利用谷歌云功能在允许访问页面之前检查用户是否已登录。以下是firebase.json上实现的代码:
"hosting": {
"rewrites": [ {
"source": "/home.html",
"function": "home"
} ]
}
在home函数中,我运行以下代码来检查Id Token是否有效:
admin.auth().verifyIdToken(idToken).then((decodedToken) => {
const userId = decodedToken.uid;
})
我面临的问题是idToken的值无效:
Firebase ID令牌的算法不正确。期望";none";但是得到了"RS256";
我试图复制&超过了result.credential.accessToken中的值,但我仍然收到相同的错误消息。
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
var token = result.credential.accessToken;
}
});
任何帮助都将不胜感激。谢谢
我知道您将HTTPS请求定向到home
HTTPS云功能。
您应该在HTTP请求的Authorization标头中将Firebase ID令牌作为Bearer令牌传递,如以下官方云函数示例中所解释和演示的那样。