Skip to content
Snippets Groups Projects
auth.js 650 B
Newer Older
Arthur.Pautrel's avatar
Arthur.Pautrel committed
const jwt = require("jsonwebtoken");

const config = process.env;

Arthur.Pautrel's avatar
Arthur.Pautrel committed
const currentUser = (req, res, next) => {
  if (!req.session.jwt) {
Arthur.Pautrel's avatar
Arthur.Pautrel committed
    return res.send("You must log in");
Arthur.Pautrel's avatar
Arthur.Pautrel committed
  }

  const user = jwt.verify(req.session.jwt, 'jwt-secret');
  req.currentUser = user;
  next();
};

Arthur.Pautrel's avatar
Arthur.Pautrel committed
const ensureSignedOut = (req, res, next) => {
  if (req.session.jwt) {
    return res.send("You are already logged in");
  }
  next();
};

const ensureSignedIn = (req, res, next) => {
  if (!req.session.jwt) {
Arthur.Pautrel's avatar
Arthur.Pautrel committed
    return res.send("You must log in");
Arthur.Pautrel's avatar
Arthur.Pautrel committed
  }
  next();
};

module.exports = {
  ensureSignedIn,
Arthur.Pautrel's avatar
Arthur.Pautrel committed
  ensureSignedOut, 
  currentUser