nodejs操作cookie

2018-06-27  本文已影响0人  Veb

cookie可以记录用户操作状态,在服务器端也可以操作cookie,这也是session会话控制的依据点。

1.获取cookie

通过req.headers.cookie拿到cookie字符串:

var http = require('http');
http.createServer(function (req, res) {
    // 获得客户端的Cookie
    var Cookies = {};
    req.headers.cookie && req.headers.cookie.split(';').forEach(function( Cookie ) {
        var parts = Cookie.split('=');
        Cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim();
    });
    console.log(Cookies)
    res.end('Hello World\n');
}).listen(8000);

2.设置cookie

基础设置:

res.writeHead(200, {
        'Set-Cookie': 'myCookie=test',
        'Content-Type': 'text/plain'
});

多组设置:

res.writeHead(200, {
     'Set-Cookie': ["aaa=bbb","ccc=ddd","eee=fff"],
     'Content-Type': 'text/plain'
 });

但真正使用时,我们的Cookie并非这样简单的的格式,需要设置过期时间等等:

res.writeHead(200, {
        'Set-Cookie': 'myCookie=test; Expires=Wed, 13-Jan-2021 22:23:01 GMT;HttpOnly ',
        'Content-Type': 'text/html'
});
  • HttpOnly 属性: 这是微软对Cookie做的扩展。如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
上一篇下一篇

猜你喜欢

热点阅读