ExpressJS和火力地堡验证,初学者查询
我努力学习ExpressJS,所以我创建一个简单的网站,登录功能... 我想用火力地堡的帐户和数据库(公司的FireStore)ExpressJS和火力地堡验证,初学者查询
我的问题是Firebase身份验证似乎只是客户端,后端不知道客户端是否已登录或不登录... 我想限制HTML呈现给客户端,如果他没有登录,但我可以'吨弄清楚如何检查他是否登录
我知道我可以使用
firebase.auth().onAuthStateChanged(function(user){ if (!user){
window.location.replace("/login");
}});
在客户端 ,看起来不“安全”,足以给我,我想这样做在ExpressJS
在火力的文档,我发现这个约Verifying ID Tokens ,但我不明白,首先是我将如何将令牌发送给ExpressJS,其次,我如何在请求路由前发送它?
回答:
您必须将ID令牌传递给您的后端。然后您按照https://firebase.google.com/docs/auth/admin/verify-id-tokens#retrieve_id_tokens_on_clients中的说明验证ID令牌。
如果您的应用程序是单个页面应用程序,则每次发送请求时都会在请求标头中传递标识令牌。
如果您正在构建更传统的Web应用程序,您可以通过Cookie设置ID令牌并检索它并在每个请求后在您的后端签入。你必须做到以下几点:
主动致电
getIdToken(true)
令牌到期之前刷新ID令牌。令牌通常会持续一个小时。您需要在到期前刷新它并更新cookie,以便重定向仍然会考虑用户登录。如果用户在一段时间后(超过一小时)访问您的网站,该Cookie将会过期,您将重定向到您设置
onAuthStateChanged
的临时页面,如果用户已登录,请致电getIdToken()
,更新cookie并重定向到预定目标,否则请考虑用户已注销。
以上是 ExpressJS和火力地堡验证,初学者查询 的全部内容, 来源链接: utcz.com/qa/262994.html