initial commit - code moved to separate repo
This commit is contained in:
16
src/middleware/errorHandler.js
Normal file
16
src/middleware/errorHandler.js
Normal file
@ -0,0 +1,16 @@
|
||||
export { errorHandler };
|
||||
|
||||
function errorHandler(err, res) {
|
||||
if (typeof (err) === 'string') {
|
||||
// custom application error
|
||||
return res.status(400).json({ message: err });
|
||||
}
|
||||
|
||||
if (err.name === 'UnauthorizedError') {
|
||||
// jwt authentication error
|
||||
return res.status(401).json({ message: 'Invalid Token' });
|
||||
}
|
||||
|
||||
// default to 500 server error
|
||||
return res.status(500).json({ message: err.message });
|
||||
}
|
18
src/middleware/jwtMiddleware.js
Normal file
18
src/middleware/jwtMiddleware.js
Normal file
@ -0,0 +1,18 @@
|
||||
const expressJwt = require('express-jwt');
|
||||
const util = require('util');
|
||||
import getConfig from 'next/config';
|
||||
|
||||
const { serverRuntimeConfig } = getConfig();
|
||||
|
||||
export { jwtMiddleware };
|
||||
|
||||
function jwtMiddleware(req, res) {
|
||||
const middleware = expressJwt({ secret: serverRuntimeConfig.secret, algorithms: ['HS256'] }).unless({
|
||||
path: [
|
||||
// public routes that don't require authentication
|
||||
'/api/users/authenticate'
|
||||
]
|
||||
});
|
||||
|
||||
return util.promisify(middleware)(req, res);
|
||||
}
|
Reference in New Issue
Block a user