繁体   English   中英

Node表示验证已签名的cookie

[英]Node express verifying signed cookie

我正在尝试在Node的快速模块中使用已签名的cookie,并已阅读文档,但对如何验证它们感到困惑。 据我了解,我必须验证服务器上的cookie。 但是,我怎么这样做对我来说还不清楚。 我会收到饼干,然后是什么? 我必须运行一个函数来验证它吗? 如果是这样,有什么功能? 如果没有,并且它是自动的,我如何编程如果cookie确实被修改了怎么办? 我必须使用什么代码来检查这个? 我打算使用这些签名的cookie进行用户身份验证。 因此,如果我转到某个页面,并希望根据用户是否经过身份验证来显示不同的内容,我不知道该怎么做。 如果在我验证cookie之前页面呈现,我看不出这是怎么回事。 因此,我假设我必须在呈现页面之前验证cookie,这导致我提出这个问题,以便弄清楚如何这样做。

基本上,我希望做这样的事情:

if(CookieIsVerified)
{
   .....
}
else if (!CookieIsVerified)
{
     .....
}

您无需自行验证cookie。 如果您使用cookieParser中间件,您可以传入一个秘密,用于签署cookie。 这意味着没有人可以改变它。

其次,使用cookieSession中间件。 这将采取req.session中的任何内容并将其序列化为cookie。

app.use(express.cookieParser('yoursecretkeyhere'));
app.use(express.cookieSession());

要检查用户是否已通过身份验证,您可以创建自己的中间件,以检查当前会话是否已通过身份验证。 如果它没有重定向到登录页面或返回401.应该在除登录路由之外的所有路由上使用此中间件。

创建一个获取凭据但不使用上述中间件的登录路由。 在这里,您可以检查用户名/密码或令牌,如果用户是有效用户,请在会话中设置经过身份验证的标志。 您可以在上面的中间件中检查此标志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM