KEYCLOAK-4366 Issues when keycloak.js is initialized with token
This commit is contained in:
parent
ee62c52543
commit
9aa2dacec9
1 changed files with 14 additions and 10 deletions
|
@ -87,6 +87,10 @@
|
||||||
}
|
}
|
||||||
kc.flow = initOptions.flow;
|
kc.flow = initOptions.flow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (initOptions.timeSkew != null) {
|
||||||
|
kc.timeSkew = initOptions.timeSkew;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!kc.responseMode) {
|
if (!kc.responseMode) {
|
||||||
|
@ -162,12 +166,8 @@
|
||||||
kc.onAuthSuccess && kc.onAuthSuccess();
|
kc.onAuthSuccess && kc.onAuthSuccess();
|
||||||
initPromise.setSuccess();
|
initPromise.setSuccess();
|
||||||
}).error(function () {
|
}).error(function () {
|
||||||
kc.onAuthError && kc.onAuthError();
|
setToken(null, null, null);
|
||||||
if (initOptions.onLoad) {
|
initPromise.setSuccess();
|
||||||
onLoad();
|
|
||||||
} else {
|
|
||||||
initPromise.setError();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -369,6 +369,11 @@
|
||||||
throw 'Not authenticated';
|
throw 'Not authenticated';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (kc.timeSkew == null) {
|
||||||
|
console.info('[KEYCLOAK] Unable to determine if token is expired as timeskew is not set');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;
|
var expiresIn = kc.tokenParsed['exp'] - Math.ceil(new Date().getTime() / 1000) + kc.timeSkew;
|
||||||
if (minValidity) {
|
if (minValidity) {
|
||||||
expiresIn -= minValidity;
|
expiresIn -= minValidity;
|
||||||
|
@ -661,6 +666,9 @@
|
||||||
|
|
||||||
if (timeLocal) {
|
if (timeLocal) {
|
||||||
kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;
|
kc.timeSkew = Math.floor(timeLocal / 1000) - kc.tokenParsed.iat;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (kc.timeSkew != null) {
|
||||||
console.info('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');
|
console.info('[KEYCLOAK] Estimated time difference between browser and server is ' + kc.timeSkew + ' seconds');
|
||||||
|
|
||||||
if (kc.onTokenExpired) {
|
if (kc.onTokenExpired) {
|
||||||
|
@ -672,11 +680,7 @@
|
||||||
kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);
|
kc.tokenTimeoutHandle = setTimeout(kc.onTokenExpired, expiresIn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
kc.updateToken(-1);
|
|
||||||
}
|
}
|
||||||
} else if (refreshToken) {
|
|
||||||
kc.updateToken(-1);
|
|
||||||
} else {
|
} else {
|
||||||
delete kc.token;
|
delete kc.token;
|
||||||
delete kc.tokenParsed;
|
delete kc.tokenParsed;
|
||||||
|
|
Loading…
Reference in a new issue