us.cookie.js 2.7 KB

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