firebase 如何在Google Cloud Function上检查已验证的用户

fsi0uk1n  于 2023-03-31  发布在  Go
关注(0)|答案(1)|浏览(141)

我正在建立一个网站,决定使用纯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;
}
});

任何帮助都将非常感激。谢谢!

ee7vknir

ee7vknir1#

我理解您将HTTPS请求定向到您的home HTTPS云函数。
您应该将Firebase ID令牌作为Bearer令牌传递到HTTP请求的Authorization标头中,如以下官方Cloud Function sample中所解释和演示的。

相关问题