【发布时间】:2017-08-02 15:49:43
【问题描述】:
我正在尝试使用 Cloud Functions for Firebase 来提供内容,并且我想检测用户是否已登录。我在我的 firebase.json 中设置了一个重写,如下所示:
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "public",
"rewrites": [{
"source": "**",
"function": "getProfile"
}]
}
}
这很好用,我正在根据请求的路径提供适当的内容。但是,因为我没有在客户端做任何事情(即我使用的是重写而不是客户端重定向),所以我错过了从客户端脚本获取当前用户的机会。
有什么方法可以使用请求对象的标头或属性,以便在我的服务器端重写方案中为登录用户和未登录用户提供不同的内容?
【问题讨论】:
-
从这个示例开始 - 它可能会让您从一些想法开始。 github.com/firebase/functions-samples/tree/master/…
-
@DougStevenson 感谢您的提示。我正在浏览那个 repo 并看到了
req.headers.authorization.startsWith('Bearer ')代码...看起来很有希望 - 谢谢! -
是的,Authorization 标头用于包含 Firebase 身份验证令牌,然后在函数端进行验证。
-
@DougStevenson 那么使用这种方法是否会更改所有前端页面以拦截客户端的所有请求并在发布到后端之前添加标头?我不能设置 Firebase 为所有登录用户自动发送身份验证令牌标头吗?
-
老实说,我不确定它在您的情况下如何工作。也许将令牌放在 cookie 中,以便可以从客户端对其进行操作?
标签: firebase firebase-authentication google-cloud-functions