我正在 youtube 上观看有关 express 中会话中间件的教程。
教学的人写了这个;
req.session.isAuth = true.
然后他在浏览器上刷新了服务器和客户端,客户端上出现了一个cookie。之前是没有的
我的问题是这怎么可能。我想如果你想发送一个 cookie,你必须通过一个响应对象来做。
此外,如何使用请求对象将任何类型的数据发送回客户端,就像他对 cookie 所做的那样。
人们可以通过多种方式在浏览器上发送和设置 cookie。例如,如果您使用 express.js,最安全的方法是使用
res.cookie("cookie_name","cookie_value")
。这样服务器就可以在客户端的浏览器上设置 cookie。您也可以使用 document.cookie="your_cookie"
通过 javascript 从客户端设置它,但它更容易受到攻击。在您在视频中看到的示例中,他可能正在使用一些中间件功能来对用户进行身份验证,一旦身份验证成功,他/她将 res.session.isAuth
设置为 true 并调用 next()
函数,在该函数中他检查 isAuth在发回数据之前设置为真。有关 cookie 和身份验证的更多信息,您可能需要查看:
https://www.geeksforgeeks.org/http-cookies-in-node-js/
https://www.loginradius.com/blog/engineering/guest-post/nodejs-authentication-guide/