From 4407ff2811a0518f703115c2b2708e9143defbad Mon Sep 17 00:00:00 2001 From: Alexandre Bourlier Date: Thu, 21 Jun 2018 09:32:07 +0200 Subject: [PATCH] Improved OIDC client connect script --- dist/lib/sib-oidc-client.js | 44 +++++++++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/dist/lib/sib-oidc-client.js b/dist/lib/sib-oidc-client.js index 4cac849..030b221 100644 --- a/dist/lib/sib-oidc-client.js +++ b/dist/lib/sib-oidc-client.js @@ -16,20 +16,40 @@ sib.oidc._setup = function(settings) { } -// Connect to OIDC provider -sib.oidc.connect = function (settings) { - sib.oidc._setup(settings); - - sib.oidc._manager.signinRedirectCallback() - .then() +// Retrieve User from sessionStorage, or fetch it +sib.oidc._getUser = function() { + sib.oidc._manager.getUser() + .then(function(user) { + if (user == null) { + sib.oidc._manager.signinRedirectCallback() + .then() + .catch(function(error) { + sib.oidc._manager.signinRedirect({state: "dummy data"}) + .then() + .catch(function(error) { + console.log(error); + }); + }); + } + else { + sib.oidc.user = user; + } + }) .catch(function(error) { console.log(error); + }); +} - sib.oidc._manager.signinRedirect({state: "some data"}) - .then() - .catch(function(error) { - console.log(error); - }); + +// Connect to OIDC provider +sib.oidc._connect = function(settings) { + sib.oidc._setup(settings); + sib.oidc._getUser(); + + + // When user loaded... + sib.oidc._manager.events.addUserLoaded(function(user) { + sib.oidc._getUser(); }); } @@ -37,5 +57,5 @@ sib.oidc.connect = function (settings) { // Entry point fetch("./oidc-client-config.json") .then(response => response.json()) - .then(settings => sib.oidc.connect(settings)); + .then(settings => sib.oidc._connect(settings));