diff --git a/src/oidc.js b/src/oidc.js index a689a0aa9..b799bddf4 100644 --- a/src/oidc.js +++ b/src/oidc.js @@ -11,6 +11,7 @@ exports = module.exports = { }, routes: { renderInteractionPage, + renderSessionEndPage, interactionLogin, interactionConfirm, interactionAbort @@ -280,6 +281,15 @@ class CloudronAdapter { } } +function renderSessionEndPage(routePrefix, provider) { + assert.strictEqual(typeof routePrefix, 'string'); + assert.strictEqual(typeof provider, 'object'); + + debug(`route session end get`); + + return res.render('session_end', {}); +} + function renderInteractionPage(routePrefix, provider) { assert.strictEqual(typeof routePrefix, 'string'); assert.strictEqual(typeof provider, 'object'); diff --git a/src/oidc_templates/session_end.ejs b/src/oidc_templates/session_end.ejs new file mode 100644 index 000000000..a849640ba --- /dev/null +++ b/src/oidc_templates/session_end.ejs @@ -0,0 +1,23 @@ + + + + + Logout Request + + + + + +
+

Do you want to sign-out?

+
+ +
+ + +
+ + + \ No newline at end of file diff --git a/src/server.js b/src/server.js index cdd84bd0b..e51d8f577 100644 --- a/src/server.js +++ b/src/server.js @@ -385,6 +385,7 @@ async function initializeExpressSync() { router.post('/api/v1/oidc/interaction/:uid/login', setNoCache, json, oidc.routes.interactionLogin(oidcProvider)); router.post('/api/v1/oidc/interaction/:uid/confirm', setNoCache, json, oidc.routes.interactionConfirm(oidcProvider)); router.get ('/api/v1/oidc/interaction/:uid/abort', setNoCache, oidc.routes.interactionAbort(oidcProvider)); + router.get ('/api/v1/oidc/session/end', setNoCache, oidc.routes.renderSessionEndPage(oidcPrefix, oidcProvider)); app.use(oidcPrefix, oidcProvider.callback());