gpt4 book ai didi

javascript - Node 快速验证签名的cookie

转载 作者:行者123 更新时间:2023-12-02 18:34:08 25 4
gpt4 key购买 nike

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

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

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

最佳答案

您不需要自己验证 cookie。如果您使用 cookieParser 中间件,您可以传递一个 secret ,该 secret 将用于签署 cookie。这意味着没有人可以改变它。

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

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

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

创建一个需要凭据且不使用上述中间件的登录路由。在这里,您可以检查用户名/密码或 token ,如果用户是有效的,则在 session 上设置一个经过身份验证的标志。您可以在上述中间件中检查此标志。

关于javascript - Node 快速验证签名的cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com