us.cookie.js 2.7 KB

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