Created a middleware for requests that checks for a token in the Authentication field in the header and verifies that the token is valid for a user.
This commit is contained in:
11
seasoned_api/src/webserver/middleware/mustBeAuthenticated.js
Normal file
11
seasoned_api/src/webserver/middleware/mustBeAuthenticated.js
Normal file
@@ -0,0 +1,11 @@
|
||||
const mustBeAuthenticated = (req, res, next) => {
|
||||
|
||||
if (req.loggedInUser === undefined) {
|
||||
return res.status(401).send({
|
||||
success: false,
|
||||
error: 'You must be logged in.',
|
||||
}); }
|
||||
return next();
|
||||
};
|
||||
|
||||
module.exports = mustBeAuthenticated;
|
||||
22
seasoned_api/src/webserver/middleware/tokenToUser.js
Normal file
22
seasoned_api/src/webserver/middleware/tokenToUser.js
Normal file
@@ -0,0 +1,22 @@
|
||||
/* eslint-disable no-param-reassign */
|
||||
const configuration = require('src/config/configuration').getInstance();
|
||||
const secret = configuration.get('authentication', 'secret');
|
||||
const Token = require('src/user/token');
|
||||
|
||||
// Token example:
|
||||
// curl -i -H "Authorization:[token]" localhost:31459/api/v1/user/history
|
||||
|
||||
const tokenToUser = (req, res, next) => {
|
||||
const rawToken = req.headers.authorization;
|
||||
if (rawToken) {
|
||||
try {
|
||||
const token = Token.fromString(rawToken, secret);
|
||||
req.loggedInUser = token.user;
|
||||
} catch (error) {
|
||||
req.loggedInUser = undefined;
|
||||
}
|
||||
}
|
||||
next();
|
||||
};
|
||||
|
||||
module.exports = tokenToUser;
|
||||
Reference in New Issue
Block a user