29 lines
680 B
JavaScript
29 lines
680 B
JavaScript
'use strict';
|
|
|
|
const passportJWT = require("passport-jwt");
|
|
const JWTStrategy = passportJWT.Strategy;
|
|
const ExtractJWT = passportJWT.ExtractJwt;
|
|
const config = require('../config');
|
|
|
|
/**
|
|
* Login Required middleware.
|
|
*/
|
|
exports.isAuthenticated = (req, res, next) => {
|
|
if (req.isAuthenticated()) {
|
|
return next();
|
|
}
|
|
res.redirect('/login');
|
|
};
|
|
|
|
/**
|
|
* Authorization Required middleware.
|
|
*/
|
|
exports.isAuthorized = (req, res, next) => {
|
|
const provider = req.path.split('/').slice(-1)[0];
|
|
const token = req.user.tokens.find(token => token.kind === provider);
|
|
if (token) {
|
|
next();
|
|
} else {
|
|
res.redirect(`/auth/${provider}`);
|
|
}
|
|
}; |