session.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * @Author HonorLee (dev@honorlee.me)
  3. * @Version 1.0 (2018-05-04)
  4. * @License MIT
  5. */
  6. 'use strict'
  7. var Session = {
  8. set:function(key,value,arg1,arg2){
  9. if(!key || !value) return null;
  10. let sessionData;
  11. if(sessionid){
  12. try{
  13. sessionData = JSON.parse(FILE.readFileSync(Core.Path.Session + '/' + sessionid,'UTF-8'));
  14. }catch(e){
  15. sessionid = '';
  16. }
  17. }
  18. if(!sessionid){
  19. sessionid = MD5(new Date().getTime()+''+Math.floor(Math.random()*9000+1000));
  20. sessionData = {id:sessionid,expire:(new Date().getTime()+Config.SessionExpire*60000)};
  21. }
  22. sessionData[key]=value;
  23. FILE.writeFileSync(Core.Path.Session + '/' + sessionid,JSON.stringify(sessionData),'UTF-8');
  24. return sessionid;
  25. },
  26. get:function(sessionid,key,callback){
  27. if(!sessionid) return null;
  28. let sessionData;
  29. try{
  30. sessionData = JSON.parse(FILE.readFileSync(Core.Path.Session + '/' + sessionid,'UTF-8'));
  31. if(sessionData.expire < new Date().getTime()){
  32. sessionData = null;
  33. Session.clear(sessionid);
  34. }
  35. }catch(e){
  36. sessionData = null;
  37. }
  38. if(key && sessionData){
  39. if(sessionData[key]!=undefined){
  40. return sessionData[key];
  41. }else{
  42. return null;
  43. }
  44. }
  45. return sessionData;
  46. },
  47. clear:function(sessionid){
  48. if(!sessionid) return;
  49. try{
  50. FILE.rmdirSync(Core.Path.Session + '/' + sessionid);
  51. }catch(e){}
  52. }
  53. };
  54. module.exports = Session;
  55. var FileManager = {
  56. }
  57. var MemcacheManager = {
  58. }