1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict';
- const db = require('../models/db');
- var config = require('config');
- module.exports = (req, res, next) => {
- const token = req.cookies["sdsession"];
-
- if (token && token != "null" && token != null) {
- db.Session.findOne({where: {token: token}})
- .then(session => {
- if (!session) {
- // session not found
- next();
- }
- else db.User.findOne({where: {_id: session.user_id}})
- .then(user => {
- if (!user) {
- var domain = (process.env.NODE_ENV == "production") ? new URL(config.get('endpoint')).hostname : req.headers.hostname;
- res.clearCookie('sdsession', { domain: domain });
- if (req.accepts("text/html")) {
- res.send("Please clear your cookies and try again.");
- } else if (req.accepts('application/json')) {
- res.status(403).json({
- "error": "token_not_found"
- });
- } else {
- res.send("Please clear your cookies and try again.");
- }
-
- } else {
- req["token"] = token;
- req["user"] = user;
- next();
- }
- });
- })
- .error(err => {
- console.error("Session resolve error",err);
- next();
- });
- } else {
- next();
- }
- }
|