node+express 操作 cookie
Cookie:有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行 Session 跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。
用 node 操作 cookie 我们需要cookie-parser
模块
接下来在我们的文件中引入此模块
参数详解
name: 一个唯一确定 cookie 的名称。value: 存储在 cookie 中字符串的值。domain: cookie 对于那个域下是有效的,path: 表示这个 cookie 影响到的路径,浏览器会根据这个配置,向指定的域中匹配的路径发送 cookie。expires: 失效时间,表示 cookie 何时失效的时间,如果不设置这个时间,浏览器就会在页面关闭时将删除所有的 cookie,不过我们也可以自己设置过期时间。注意:如果客户端和服务器端设置的时间不一致,使用 expires 就会存在偏差。max-age: 用来告诉浏览器此 cookie 多久过期(单位是秒),一般的情况下,max-age 的优先级高于 expires。HttpOnly: 告诉浏览器不允许通过脚本 document.cookie 去更改值,这个值在 document.cookie 中也是不可见的,但是在 http 请求会携带这个 cookie,注意:这个值虽然在脚本中使不可取的,但是在浏览器安装目录中是以文件形式存在的,这个设置一般在服务器端设置的。secure:安全标志,指定后,当 secure 为 true 时候,在 HTTP 中是无效的,在 HTTPS 中才有效,表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以一般不会被且听到。
关于读取问题
req.cookies:读取到的是我们未加密的 cookie;
req.signedCookies:读取我们的加密 cookie。
案例
当maxAge
为0
时会删除我们的cookie
。
版权声明: 本文为 InfoQ 作者【木偶】的原创文章。
原文链接:【http://xie.infoq.cn/article/6cc5bcaa24ee828f0606c5364】。文章转载请联系作者。
评论