//有思工作室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; }