Moved to chinook + added .env

This commit is contained in:
Daniel
2020-12-16 10:58:53 +01:00
committed by Daniel Hutzel
parent 5cec82fa00
commit 69e510a407
136 changed files with 6 additions and 5 deletions

28
chinook/srv/auth.js Normal file
View File

@@ -0,0 +1,28 @@
const cds = require("@sap/cds");
const jwt = require("jsonwebtoken");
const { ACCESS_TOKEN_SECRET } = process.env;
class MyUser extends cds.User {
constructor(attr, roles, id) {
super({ attr, _roles: [...roles], id });
}
}
module.exports = (req, res, next) => {
const { authorization: authHeader } = req.headers;
const token = authHeader && authHeader.split(" ")[1];
try {
const decodedUser = jwt.verify(token, ACCESS_TOKEN_SECRET);
req.user = new MyUser(
{ ID: decodedUser.ID },
[decodedUser.roles, "authenticated-user"],
decodedUser.email
);
} catch (error) {
req.user = new cds.User();
} finally {
next();
}
};