From f51ce6f4acf28c224ec4a02f35ae35726cdc4c38 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 12 May 2015 22:31:07 +0200 Subject: Working login, but doesn't save token yet --- src/js/Botleagues.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/js/Botleagues.js') diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index f9d34b7..2ab1bc7 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -2,7 +2,9 @@ function Botleagues(){} Botleagues.url = 'https://api.local.botleagues.camilstaps.nl'; -Botleagues.request = function(user_options, callback) { +Botleagues.request = function(user_options) { + var callback = user_options.callback; + var options = { endpoint: null, method: 'GET', @@ -11,16 +13,30 @@ Botleagues.request = function(user_options, callback) { callback(data.responseJSON); } }; + + var url = Botleagues.url + '/' + user_options['endpoint']; + delete user_options['callback']; + delete user_options['endpoint']; + for (var name in user_options) { options[name] = user_options[name]; } - var url = Botleagues.url + '/' + options['endpoint']; - delete options['endpoint']; - jQuery.ajax(url, options); }; Botleagues.redirect = function(user_options) { window.location = Botleagues.url + '/' + user_options['endpoint']; +}; + +Botleagues.login = function(username, password) { + Botleagues.request({ + endpoint: 'user_token', + method: 'POST', + callback: BotleaguesCallback.login, + async: false, + headers: { + 'Authorization': 'Basic ' + btoa(username + ':' + password) + } + }); }; \ No newline at end of file -- cgit v1.2.3 From 3841987127e33a17a0c070b42c9293e282fa8a72 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 13 May 2015 08:09:25 +0200 Subject: Save token information in cookies --- src/js/Botleagues.js | 1 - src/js/BotleaguesCallback.js | 3 +++ src/js/BotleaguesFrontend.js | 4 ++++ src/js/forms.js | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/js/Botleagues.js') diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index 2ab1bc7..c219a3d 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -34,7 +34,6 @@ Botleagues.login = function(username, password) { endpoint: 'user_token', method: 'POST', callback: BotleaguesCallback.login, - async: false, headers: { 'Authorization': 'Basic ' + btoa(username + ':' + password) } diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js index 3b1de02..ce91d50 100644 --- a/src/js/BotleaguesCallback.js +++ b/src/js/BotleaguesCallback.js @@ -37,6 +37,9 @@ BotleaguesCallback.login = function(data) { message: "Login successful!", type: 'success' }); + $.cookie(BotleaguesFrontend.cookie_login_user_id, data.user_token.userId); + $.cookie(BotleaguesFrontend.cookie_login_token, data.user_token.token); + $.cookie(BotleaguesFrontend.cookie_login_valid_till, Date.parse(data.user_token.valid_till)); } else { BotleaguesFrontend.error({ message: data.error ? data.error : "Could not login." diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js index c25a7f2..be80f31 100644 --- a/src/js/BotleaguesFrontend.js +++ b/src/js/BotleaguesFrontend.js @@ -1,5 +1,9 @@ function BotleaguesFrontend(){} +BotleaguesFrontend.cookie_login_user_id = 'botleagues_login_user_id'; +BotleaguesFrontend.cookie_login_token = 'botleagues_login_token'; +BotleaguesFrontend.cookie_login_valid_till = 'botleagues_login_valid_till'; + BotleaguesFrontend.error = function(user_options) { options = { dismissable: true, diff --git a/src/js/forms.js b/src/js/forms.js index dfecb7f..6a567a8 100644 --- a/src/js/forms.js +++ b/src/js/forms.js @@ -17,4 +17,5 @@ $('.btn-botleagues-login').focus(function(){ }); $('#login-form').submit(function(){ Botleagues.login($('#login-email').val(), $('#login-password').val()); + return false; }); \ No newline at end of file -- cgit v1.2.3 From 3252fb165b74a9daf2ce27ac05b6c5a1c22018d4 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 13 May 2015 08:15:31 +0200 Subject: Save user's email in cookie --- src/js/Botleagues.js | 6 ++++-- src/js/BotleaguesCallback.js | 1 + src/js/BotleaguesFrontend.js | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/js/Botleagues.js') diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index c219a3d..f11c995 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -29,13 +29,15 @@ Botleagues.redirect = function(user_options) { window.location = Botleagues.url + '/' + user_options['endpoint']; }; -Botleagues.login = function(username, password) { +Botleagues.login = function(email, password) { Botleagues.request({ endpoint: 'user_token', method: 'POST', callback: BotleaguesCallback.login, headers: { - 'Authorization': 'Basic ' + btoa(username + ':' + password) + 'Authorization': 'Basic ' + btoa(email + ':' + password) } }); + + $.cookie(BotleaguesFrontend.cookie_login_email, email); }; \ No newline at end of file diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js index ce91d50..3e7e512 100644 --- a/src/js/BotleaguesCallback.js +++ b/src/js/BotleaguesCallback.js @@ -44,5 +44,6 @@ BotleaguesCallback.login = function(data) { BotleaguesFrontend.error({ message: data.error ? data.error : "Could not login." }); + $.removeCookie(BotleaguesFrontend.cookie_login_email); } }; \ No newline at end of file diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js index be80f31..b365743 100644 --- a/src/js/BotleaguesFrontend.js +++ b/src/js/BotleaguesFrontend.js @@ -1,5 +1,7 @@ function BotleaguesFrontend(){} +$.cookie.json = true; +BotleaguesFrontend.cookie_login_email = 'botleagues_login_email'; BotleaguesFrontend.cookie_login_user_id = 'botleagues_login_user_id'; BotleaguesFrontend.cookie_login_token = 'botleagues_login_token'; BotleaguesFrontend.cookie_login_valid_till = 'botleagues_login_valid_till'; -- cgit v1.2.3 From f88789856be8a484bb1800a1b1695c2ac4b8a3b1 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 13 May 2015 12:32:27 +0200 Subject: Logout --- src/include/layout-main.jade | 4 +++- src/js/Botleagues.js | 5 +++++ src/js/BotleaguesFrontend.js | 11 +++++++++++ src/js/main.js | 29 ++++++++++++++++++++--------- src/logout.jade | 11 +++++++++++ 5 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 src/logout.jade (limited to 'src/js/Botleagues.js') diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade index 164a7b2..4b521a9 100644 --- a/src/include/layout-main.jade +++ b/src/include/layout-main.jade @@ -38,4 +38,6 @@ html(lang="en") footer.footer: :markdown © [ViviSoft](http://vivisoft.nl/) 2015 - include ./foot.jade \ No newline at end of file + include ./foot.jade + + block js \ No newline at end of file diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index f11c995..21dd5d7 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -40,4 +40,9 @@ Botleagues.login = function(email, password) { }); $.cookie(BotleaguesFrontend.cookie_login_email, email); +}; + +Botleagues.logout = function(){ + BotleaguesFrontend.clearLoginCookies(); + BotleaguesFrontend.redirect('/'); }; \ No newline at end of file diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js index 752cd7a..b94708e 100644 --- a/src/js/BotleaguesFrontend.js +++ b/src/js/BotleaguesFrontend.js @@ -29,4 +29,15 @@ BotleaguesFrontend.error = function(user_options) { BotleaguesFrontend.refresh = function() { location.reload(); +}; + +BotleaguesFrontend.redirect = function(location) { + window.location = location; +} + +BotleaguesFrontend.clearLoginCookies = function() { + $.removeCookie(BotleaguesFrontend.cookie_login_email); + $.removeCookie(BotleaguesFrontend.cookie_login_user_id); + $.removeCookie(BotleaguesFrontend.cookie_login_token); + $.removeCookie(BotleaguesFrontend.cookie_login_valid_till); }; \ No newline at end of file diff --git a/src/js/main.js b/src/js/main.js index d3ab688..4444273 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -3,13 +3,24 @@ $(document).ready(function(){ // Show profile link instead of login if user is logged in var email = $.cookie(BotleaguesFrontend.cookie_login_email); if (typeof email != 'undefined' && $.cookie(BotleaguesFrontend.cookie_login_valid_till) > (new Date()).getTime()) { - $('#nav .login-link').remove(); - $('