created API For Aplication Absensi
This commit is contained in:
35
app/middlewares/authentication.js
Normal file
35
app/middlewares/authentication.js
Normal file
@@ -0,0 +1,35 @@
|
||||
require('dotenv').config();
|
||||
const jwt = require('jsonwebtoken');
|
||||
const responses = require('../helpers/responses');
|
||||
const db = require('../../models/migration');
|
||||
const User = db.User;
|
||||
|
||||
const authentication = async (req, res, next) => {
|
||||
try {
|
||||
const header = req.header('Authorization');
|
||||
if (!header) {
|
||||
return responses.failed(res, 401);
|
||||
}
|
||||
|
||||
const idToken = header.replace('Bearer ', '');
|
||||
const decoded = jwt.verify(idToken, process.env.JWT_SECRET_KEY);
|
||||
|
||||
const userId = decoded.id;
|
||||
const user = await User.findByPk(userId);
|
||||
|
||||
if (!user) {
|
||||
return responses.failed(res, 401);
|
||||
}
|
||||
if (user.is_suspended) {
|
||||
return responses.failed(res, 403, 'Akun Anda telah ditangguhkan');
|
||||
}
|
||||
|
||||
req.user = user;
|
||||
return next();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
return responses.failed(res, 401);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = authentication;
|
||||
Reference in New Issue
Block a user