keycloak-aplcache
Changes
adapters/oidc/js/src/main/resources/keycloak.js 31(+14 -17)
examples/cordova/www/index.html 10(+8 -2)
Details
adapters/oidc/js/src/main/resources/keycloak.js 31(+14 -17)
diff --git a/adapters/oidc/js/src/main/resources/keycloak.js b/adapters/oidc/js/src/main/resources/keycloak.js
index 4bfec59..30453e3 100755
--- a/adapters/oidc/js/src/main/resources/keycloak.js
+++ b/adapters/oidc/js/src/main/resources/keycloak.js
@@ -878,31 +878,28 @@
var loginUrl = kc.createLoginUrl(options);
var ref = window.open(loginUrl, '_blank', o);
- var callback;
- var error;
+ var completed = false;
ref.addEventListener('loadstart', function(event) {
if (event.url.indexOf('http://localhost') == 0) {
- callback = parseCallback(event.url);
+ var callback = parseCallback(event.url);
+ processCallback(callback, promise);
ref.close();
+ completed = true;
}
});
ref.addEventListener('loaderror', function(event) {
- if (event.url.indexOf('http://localhost') == 0) {
- callback = parseCallback(event.url);
- ref.close();
- } else {
- error = true;
- ref.close();
- }
- });
-
- ref.addEventListener('exit', function(event) {
- if (error || !callback) {
- promise.setError();
- } else {
- processCallback(callback, promise);
+ if (!completed) {
+ if (event.url.indexOf('http://localhost') == 0) {
+ var callback = parseCallback(event.url);
+ processCallback(callback, promise);
+ ref.close();
+ completed = true;
+ } else {
+ promise.setError();
+ ref.close();
+ }
}
});
examples/cordova/www/index.html 10(+8 -2)
diff --git a/examples/cordova/www/index.html b/examples/cordova/www/index.html
index cd33b24..296986d 100644
--- a/examples/cordova/www/index.html
+++ b/examples/cordova/www/index.html
@@ -48,8 +48,14 @@
}
}
+ function error() {
+ document.getElementById('authenticated').style.display = 'none';
+ document.getElementById('not-authenticated').style.display = 'block';
+ document.getElementById('error').innerText = 'Failed to initialize Keycloak adapter';
+ }
+
document.addEventListener("deviceready", function() {
- keycloak.init({ onLoad: 'check-sso' }).success(updateState);
+ keycloak.init({ onLoad: "check-sso" }).success(updateState).error(error);
}, false);
</script>
<style>
@@ -104,7 +110,7 @@
<button onclick="keycloak.login()">Log in</button>
</div>
<div>
- <p>Not authenticated</p>
+ <p id="error">Not authenticated</p>
</div>
</div>
</body>