filter.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * Created by Administrator on 2015/9/9.
  3. */
  4. var mongoose = require('mongoose');
  5. var UserModel = mongoose.model('User');
  6. var settings = require('../models/db/settings');
  7. var siteFunc = require('../models/db/siteFunc');
  8. var UserNotify = require('../models/UserNotify');
  9. //用户实体类
  10. var User = require("../models/User");
  11. function gen_session(user, res) {
  12. var auth_token = user._id + '$$$$'; // 以后可能会存储更多信息,用 $$$$ 来分隔
  13. res.cookie(settings.auth_cookie_name, auth_token,
  14. {path: '/', maxAge: 1000 * 60 * 60 * 24 * 30, signed: true, httpOnly: true}); //cookie 有效期30天
  15. }
  16. exports.gen_session = gen_session;
  17. exports.authUser = function (req, res, next) {
  18. if (settings.debug && req.cookies['mock_user']) {
  19. var mockUser = JSON.parse(req.cookies['mock_user']);
  20. req.session.user = new UserModel(mockUser);
  21. return next();
  22. }
  23. if (req.session.user) {
  24. UserNotify.getNoReadNotifyCountByUserId(req.session.user._id,'user',function(err,count){
  25. req.session.user.msg_count = count;
  26. req.session.logined = true;
  27. return next();
  28. })
  29. } else {
  30. var auth_token = req.signedCookies[settings.auth_cookie_name];
  31. if (!auth_token) {
  32. return next();
  33. }else{
  34. var auth = auth_token.split('$$$$');
  35. var user_id = auth[0];
  36. User.findOne({'_id' : user_id},function(err,user){
  37. if(err){
  38. console.log(err)
  39. }else{
  40. if(!user){
  41. return next();
  42. }
  43. UserNotify.getNoReadNotifyCountByUserId(user_id,'user',function(err,count){
  44. user.msg_count = count;
  45. req.session.user = user;
  46. req.session.logined = true;
  47. return next();
  48. })
  49. }
  50. })
  51. }
  52. }
  53. };