Improved OIDC client connect script

This commit is contained in:
Alexandre Bourlier 2018-06-21 09:32:07 +02:00
parent de33cc7885
commit 4407ff2811
1 changed files with 32 additions and 12 deletions

View File

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