1. js设置cookie
1.1. 海哥的插件
浏览器端用到了海哥写的Cookie插件:https://github.com/voidking/jquery-cookie ,值得好好学习一下。
1
| cookie.prototype.setCookie('accessToken', accessToken,7);
|
1.2. jquery官方插件
如果使用jquery官方给的cookie插件,用法如下:
1
| $.cookie('accessToken', accessToken,{ expires: 7});
|
1.3. 原生js
如果使用原生的JS来操作cookie,用法如下:
1 2 3 4 5 6 7 8 9
| var date=new Date(); var expireDays=7;
date.setTime(date.getTime()+expireDays*24*3600*1000);
date.setDate(date.getDate+expireDays);
document.cookie = 'accessToken='+accessToken+';expires=7';
|
2. js删除cookie
2.1. 海哥的插件
1
| cookie.prototype.delCookie('accessToken');
|
2.2. jquery官方插件
1
| $.removeCookie('accessToken');
|
2.3. 原生JS
1 2 3 4 5 6 7
| var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie='accessToken=v; expire='+date.toGMTString(); console.log(document.cookie);
|
3. js获取cookie
3.1. 海哥的插件
1
| var accessToken = cookie.prototype.getCookie('accessToken');
|
3.2. jquery官方插件
1
| var accessToken = $.cookie('accessToken');
|
3.3. 原生js
1 2 3 4 5 6 7 8 9
| var accessToken = getCookie('accessToken'); function getCookie(objName){ var arrStr = document.cookie.split("; "); for(var i = 0;i < arrStr.length;i ++){ var temp = arrStr[i].split("="); if(temp[0] == objName) return unescape(temp[1]); } }
|
4. Node端获取cookie
1 2 3 4 5 6
| var Cookies = {}; req.headers.cookie && req.headers.cookie.split(';').forEach(function( Cookie ) { var parts = Cookie.split('='); Cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim(); }); var accessToken = Cookies['accessToken'] || '';
|
5. 后记
accessToken可以在前端获取后传给Node端,也可以在Node端获取。如果这个accessToken不为空,则表明该用户已经登录,否则表明该用户未登录。
6. 参考文档
jQuery Cookie
http://plugins.jquery.com/cookie/
jQuery Cookie项目地址
https://github.com/carhartl/jquery-cookie
关于document.cookie的使用
http://www.cnblogs.com/newsouls/archive/2766567.html