-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathapprouter-start.js
36 lines (34 loc) · 1.09 KB
/
approuter-start.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const approuter = require('@sap/approuter');
const xssec = require('@sap/xssec');
const xsenv = require('@sap/xsenv');
const { jwtDecode } = require('jwt-decode');
var ar = approuter();
ar.beforeRequestHandler.use('/backend', function (req, res, next) {
const token = req.user.token.accessToken;
if (!token) {
res.statusCode = 403;
res.end("Missing JWT Token");
} else {
const decodedToken = jwtDecode(token);
const tenant = decodedToken && decodedToken.zid;
req.headers['x-tenant-id'] = tenant;
next();
}
});
ar.beforeRequestHandler.use('/userInfo', function (req, res, next) {
const token = req.user.token.accessToken;
if (!token) {
res.statusCode = 403;
res.end("Missing JWT Token");
} else {
res.statusCode = 200;
let decodedToken = jwtDecode(token);
res.end(JSON.stringify({
userid: decodedToken.user_name,
email: decodedToken.email,
firstname: decodedToken.given_name,
lastname: decodedToken.family_name
}));
}
});
ar.start();