diff options
| author | 2013-11-07 23:50:21 +0100 | |
|---|---|---|
| committer | 2013-11-07 23:50:21 +0100 | |
| commit | 5a2a5ee37480b0856b06b656b5b29d12ce132722 (patch) | |
| tree | 546910aa20c9fb50fc84d467a81a242cc8bee81d /public | |
| parent | fb6259f3750d7130d729b785a6e980005af0c921 (diff) | |
Issue #235: refactorisation code Persona
Le code pour la connexion via Persona a été bougée dans le fichier
main.js avec le reste du code JS
Ça ne marche toujours pas sous Firefox car il essaye d'initialiser
navigator.id.watch avant que le fichier login.persona.org/include.js
ne soit chargé
L'url est correctement écrite côté serveur pour permettre à Persona
d'indiquer au site que la connexion s'est bien passée
Diffstat (limited to 'public')
| -rw-r--r-- | public/scripts/main.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/public/scripts/main.js b/public/scripts/main.js index f4bffcca8..663f311c3 100644 --- a/public/scripts/main.js +++ b/public/scripts/main.js @@ -504,6 +504,63 @@ function init_load_more() { } //</endless_mode> +//<persona> +function init_persona() { + $('a.signin').click(function() { + navigator.id.request(); + return false; + }); + + $('a.signout').click(function() { + navigator.id.logout(); + return false; + }); + + navigator.id.watch({ + loggedInUser: current_user_mail, + + onlogin: function(assertion) { + // A user has logged in! Here you need to: + // 1. Send the assertion to your backend for verification and to create a session. + // 2. Update your UI. + $.ajax ({ + type: 'POST', + url: url_login, + data: {assertion: assertion}, + success: function(res, status, xhr) { + var res_obj = jQuery.parseJSON(res); + + if (res_obj.status == 'failure') { + //alert (res_obj.reason); + } else if (res_obj.status == 'okay') { + location.href = url_freshrss; + } + }, + error: function(res, status, xhr) { + alert("login failure : " + res); + } + }); + }, + onlogout: function() { + // A user has logged out! Here you need to: + // Tear down the user's session by redirecting the user or making a call to your backend. + // Also, make sure loggedInUser will get set to null on the next page load. + // (That's a literal JavaScript null. Not false, 0, or undefined. null.) + $.ajax ({ + type: 'POST', + url: url_logout, + success: function(res, status, xhr) { + location.href = url_freshrss; + }, + error: function(res, status, xhr) { + //alert("logout failure" + res); + } + }); + } + }); +} +//</persona> + function init_all() { if (!(window.$ && window.shortcut && window.shortcuts && ((!full_lazyload) || $.fn.lazyload))) { if (window.console) { @@ -522,6 +579,7 @@ function init_all() { init_notifications(); init_actualize(); init_load_more(); + init_persona(); if (window.console) { console.log('Init done.'); } |
