-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlogout.js
34 lines (27 loc) · 932 Bytes
/
logout.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
const express = require('express');
const config = require('../config.js');
const cookie = require('../cookie.js');
const router = express.Router();
router.get('/', (req, res) => {
const idToken = req.cookies['app.idt'];
console.log("clearing token cookies");
cookie.setSecure(res, 'app.at', '', 0);
cookie.setSecure(res, 'app.rt', '', 0);
cookie.setReadable(res, 'app.at_exp', '', 0);
cookie.setReadable(res, 'app.idt', '', 0);
const queryParams = {
post_logout_redirect_uri: req.query.post_logout_redirect_uri,
};
if (req.query.client_id) {
queryParams.client_id = req.query.client_id;
} else {
queryParams.id_token_hint = idToken ?? '';
}
const fullUrl = generateUrl(queryParams);
res.redirect(fullUrl);
});
function generateUrl(queryParams) {
const query = new URLSearchParams(queryParams);
return `${config.fusionAuthBaseUrl}/oauth2/logout?${query}`;
}
module.exports = router;