Skip to content

Commit 290b4d9

Browse files
Merge pull request #1 from ritza-co/main
Return json for panic endpoint and allow using Authorisation header
2 parents a5ae43c + cfb02df commit 290b4d9

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

complete-application/routes/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ router.get('/', function (req, res, next) {
77
});
88

99
router.post('/panic', hasRole(['teller']), function (req, res, next) {
10-
res.send("We've called the police!");
10+
res.json({ message: "We've called the police!" });
1111
});
1212

1313
router.get('/make-change', hasRole(['customer', 'teller']), function (req, res, next) {
@@ -23,4 +23,4 @@ router.get('/make-change', hasRole(['customer', 'teller']), function (req, res,
2323
res.json(result);
2424
});
2525

26-
module.exports = router;
26+
module.exports = router;

complete-application/services/hasRole.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const jose = require('jose');
22

33
function hasRole(roles) {
44
return (req, res, next) => {
5-
const decodedToken = jose.decodeJwt(req.cookies['app.at']);
5+
const decodedToken = jose.decodeJwt(req.verifiedToken);
66
if (roles.some((role) => decodedToken.roles.includes(role))) return next();
77
res.status(403);
88
res.send({ error: `You do not have a role with permissions to do this.` });

complete-application/services/verifyJWT.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ const jwksClient = jose.createRemoteJWKSet(
66
);
77

88
const verifyJWT = async (req, res, next) => {
9-
const access_token = req.cookies['app.at'];
9+
const authHeader = req.headers.authorization;
10+
const tokenFromHeader = authHeader ? authHeader.split(' ')[1] : null;
11+
const access_token = req.cookies['app.at'] || tokenFromHeader;
1012
if (!access_token) {
1113
res.status(401);
1214
res.send({ error: 'Missing token cookie and Authorization header' });
@@ -16,6 +18,7 @@ const verifyJWT = async (req, res, next) => {
1618
issuer: process.env.BASE_URL,
1719
audience: process.env.CLIENT_ID,
1820
});
21+
req.verifiedToken = access_token;
1922
next();
2023
} catch (e) {
2124
if (e instanceof jose.errors.JOSEError) {

0 commit comments

Comments
 (0)