1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //有思工作室Cookie类。
- //判断是否是登录用户操作增加,删除,修改。
- exports.IsloginId = function (req, UserId) {
- //如果没有Cookie,直接返回false
- if (!req.headers.cookie) return false;//ie 为空,但chrome不为空,还要加判断啊。
- var _uscookie=GetUSCookie(req);
- if(!_uscookie) return false;//chrome判断有思cookie是否为空
- var _cid = GetUSCookie(req).userid; //获取Cookie中保存的用户id
- //console.log(_cid);
- //如果用户id等于登录用户id,则获取授权,否则,不能获取
- if (_cid == UserId) return true;
- else return false;
- }
- //从原始Cookie中SplitCookie后再获取1473的Cookie集合。因为有思的Cookie有很多
- GetUSCookie = function (req) {
- ////获取有思Cookie。格式为userid=72854d28-f45c-48d7-92b7-3cd933e03022&username=13928417148&Loginid=dfdcfd00-41f3-923d-bcdc-0d59a423883b
- var _uj = {}; //定义一个接受的集合,以后可以这样访问 _uj.userid _uj.username。。
- var _usc=SplitCookie(req).usestudiosso;
- if(!_usc) return false; //如果没有找到有思Cookie,返回false。
- var _uc = _usc.split("&");
- //按照&号拆分出3个。
- for (var i = 0; i < _uc.length; i++) {
- var idx = _uc[i].indexOf('=');
- var key = _uc[i].substr(0, idx).trim(); //得到key值。
- //由于1473特性。需要反向找到最后一个Cookie。所以还需要反向获得值。
- var last = _uc[i].lastIndexOf('=');
- var val = _uc[i].substr(++last, _uc[i].length).trim(); //得到value值。
- //var val = _uc[i].substr(++idx, _uc[i].length).trim();
- _uj[key] = val; //加入集合中。
- }
- return _uj;
- }
- //不带exports就是私有方法?带了exports在本文件中访问不了。
- //把原始Cookie字符串拆分成集合。
- SplitCookie = function (req) {
- //cookie原始格式_ga=GA1.2.231946673.1395199498; Hm_lvt_1fce47ee7e8655ddd108fca7116f0752=1395213071,1395213219,1395213766,1395214600; use
- //studiosso=userid=72854d28-f45c-48d7-92b7-3cd933e03022&username=13928417148&Loginid=25e6bb4b-a8f5-698d-ee06-a4cb3e56f4af
- var cookieObj = {}; //定义集合,以便获取数据
- var pairs = req.headers.cookie.split(/[;,] */); //根据分号,逗号拆分字符串为字符串数组。
- //循环数组中每个元素,按照等号拆分成键值对。如果没有等号会有错误,暂时不管他了,以后再修正。
- for (var i = 0; i < pairs.length; i++) {
- var idx = pairs[i].indexOf('=');
- var key = pairs[i].substr(0, idx).trim();
- var val = pairs[i].substr(++idx, pairs[i].length).trim();
- cookieObj[key] = val; //加入集合中。
- }
- return cookieObj;
- }
|