KNF:SSO notificatie middels JavaScript: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 49: | Regel 49: | ||
url: url, |
url: url, |
||
dataType: 'jsonp' |
dataType: 'jsonp' |
||
− | }).always(function(data) { |
+ | }).always(function(data) {}); |
− | }); |
||
} else { |
} else { |
||
// This code can be used if no jQuery is available |
// This code can be used if no jQuery is available |
||
loadJSONP(url); |
loadJSONP(url); |
||
} |
} |
||
− | } |
||
− | |||
− | |||
− | function write(text) { |
||
− | document.getElementById('ssonot').innerText += text + "\r\n"; |
||
} |
} |
||
Versie van 28 sep 2018 08:06
Het SSO notificatie cookie kan geplaatst worden, nadat de gebruiker is ingelogd in de ELO of schoolportaal, door een AJAX call naar Entree Federatie uit te voeren.
Het voorbeeld script ondersteunt zowel jQuery als native JavaScript.
<script type="text/javascript" charset="utf-8">
var eloid = ''; // EntityId
var elourl = ''; // ELO URL
function createCookie(name, value) {
document.cookie = name + "=" + value + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1,c.length);
}
if (c.indexOf(nameEQ) == 0) {
return c.substring(nameEQ.length, c.length);
}
}
return null;
}
function setCookie() {
if (readCookie('entreePrelogin') != 'true') {
createCookie('entreePrelogin', 'true');
setSsoNotification();
}
}
function setSsoNotification() {
var url = "https://aselect.entree.kennisnet.nl/openaselect/profiles/entree?id=" + eloid + "&url=" + encodeURIComponent(elourl);
// Check if jQuery is avaiable
if (window.jQuery) {
// Use jQuery to ask the Entree Federation to set a SSO Notification
$.ajax({
url: url,
dataType: 'jsonp'
}).always(function(data) {});
} else {
// This code can be used if no jQuery is available
loadJSONP(url);
}
}
// This function can be used if jQuery is not available
function loadJSONP(url) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
// Setup handler
window[name] = function(data) {
callback.call((context || window), data);
document.getElementsByTagName('head')[0].removeChild(script);
script = null;
delete window[name];
};
// Load JSON
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
Foutmeldingen
Als de ingestelde identifier van de IdP niet bekend is binnen Entree Federatie zal de call resulteren in een 400 HTTP status code.
Wanneer de URL waarvandaan de call gedaan wordt niet aan de whitelist van Entree Federatie is toegevoegd zal de call ook een 400 HTTP status code opleveren.
Neem in deze gevallen contact op met Kennisnet.