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));