我正在建立一个网站,决定使用纯HTML+JS和完整的Firebase,这样我就不必实现后端系统来测试新的想法。这个问题的用例是所有用户都应该经过身份验证才能访问页面(非常标准的安全功能,对吗?)。
为了实现这一点,我利用Google Cloud Functions在允许访问页面之前检查用户是否登录。下面是在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”,但得到的是“RS 256”
我试图复制并传递result.credential.accessToken中的值,但仍然得到相同的错误消息。
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
var token = result.credential.accessToken;
}
});
任何帮助都将非常感激。谢谢!
1条答案
按热度按时间ee7vknir1#
我理解您将HTTPS请求定向到您的
home
HTTPS云函数。您应该将Firebase ID令牌作为Bearer令牌传递到HTTP请求的Authorization标头中,如以下官方Cloud Function sample中所解释和演示的。