From 997c2e9b127b9127cfcf5d5a4acf7de5d4dc348e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20G=C3=B6tz?= Date: Sun, 1 Apr 2018 17:37:52 +0200 Subject: [PATCH] Implement token autentication, Implement account views --- basta/src/authentication.js | 56 ++++++ .../components/account/AccountOverview.vue | 41 +++++ basta/src/components/account/Activation.vue | 51 ++++++ basta/src/components/account/Login.vue | 84 +++++++++ basta/src/components/account/Logout.vue | 28 +++ .../account/PasswordResetConfirmation.vue | 101 +++++++++++ .../components/account/PasswordResetMail.vue | 77 +++++++++ basta/src/components/account/Registration.vue | 155 +++++++++++++++++ .../account/utils/AccountDetails.vue | 58 +++++++ .../account/utils/AccountFormular.vue | 159 ++++++++++++++++++ basta/src/components/account/utils/Food.vue | 139 +++++++++++++++ 11 files changed, 949 insertions(+) create mode 100644 basta/src/authentication.js create mode 100644 basta/src/components/account/AccountOverview.vue create mode 100644 basta/src/components/account/Activation.vue create mode 100644 basta/src/components/account/Login.vue create mode 100644 basta/src/components/account/Logout.vue create mode 100644 basta/src/components/account/PasswordResetConfirmation.vue create mode 100644 basta/src/components/account/PasswordResetMail.vue create mode 100644 basta/src/components/account/Registration.vue create mode 100644 basta/src/components/account/utils/AccountDetails.vue create mode 100644 basta/src/components/account/utils/AccountFormular.vue create mode 100644 basta/src/components/account/utils/Food.vue diff --git a/basta/src/authentication.js b/basta/src/authentication.js new file mode 100644 index 0000000..0457e85 --- /dev/null +++ b/basta/src/authentication.js @@ -0,0 +1,56 @@ +import router from '@/router' +import {API_ROOT} from '@/config.js' + +export default { + user: { + authenticated: false + }, + + // authentication status + authenticated() { + return (localStorage.getItem('user') !== null && JSON.parse(localStorage.getItem('user')).data.token !== '') + }, + + // Send a request to the login URL and save the returned JWT + login(creds) { + console.log('LOGIN'); + window.axios.post(API_ROOT.concat('/token-auth/token/create/'), creds) + .then((response) => { + this.user.authenticated = true; + console.log(response); + localStorage.setItem('user', JSON.stringify(response)); + // Redirect to a specified route + window.axios.defaults.headers.common = { + 'Authorization': ('Token ' + JSON.parse(localStorage.getItem('user')).data.auth_token) + }; + location.reload(); + }) + .catch(function (error) { + console.log(error); + alert(error.response.data.non_field_errors[0]); + }) + }, + + // To log out + logout: function (redirect) { + window.axios.post(API_ROOT.concat('/token-auth/token/destroy/'),) + .then((response) => { + this.user.authenticated = false; + localStorage.removeItem('user'); + console.log(response); + // Redirect to a specified route + window.axios.defaults.headers.common = { + 'Authorization': '', + }; + location.reload(); + if (redirect) { + router.push({name: 'home'}); + // router.go(redirect) + } + }) + .catch(function (error) { + console.log(error); + alert(error.response.data); + }); + } +} diff --git a/basta/src/components/account/AccountOverview.vue b/basta/src/components/account/AccountOverview.vue new file mode 100644 index 0000000..fce4136 --- /dev/null +++ b/basta/src/components/account/AccountOverview.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/basta/src/components/account/Activation.vue b/basta/src/components/account/Activation.vue new file mode 100644 index 0000000..5730780 --- /dev/null +++ b/basta/src/components/account/Activation.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/basta/src/components/account/Login.vue b/basta/src/components/account/Login.vue new file mode 100644 index 0000000..ffc34a7 --- /dev/null +++ b/basta/src/components/account/Login.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/basta/src/components/account/Logout.vue b/basta/src/components/account/Logout.vue new file mode 100644 index 0000000..f67d3e8 --- /dev/null +++ b/basta/src/components/account/Logout.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/basta/src/components/account/PasswordResetConfirmation.vue b/basta/src/components/account/PasswordResetConfirmation.vue new file mode 100644 index 0000000..ca8a4d1 --- /dev/null +++ b/basta/src/components/account/PasswordResetConfirmation.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/basta/src/components/account/PasswordResetMail.vue b/basta/src/components/account/PasswordResetMail.vue new file mode 100644 index 0000000..8bc9cd7 --- /dev/null +++ b/basta/src/components/account/PasswordResetMail.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/basta/src/components/account/Registration.vue b/basta/src/components/account/Registration.vue new file mode 100644 index 0000000..116b229 --- /dev/null +++ b/basta/src/components/account/Registration.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/basta/src/components/account/utils/AccountDetails.vue b/basta/src/components/account/utils/AccountDetails.vue new file mode 100644 index 0000000..3445465 --- /dev/null +++ b/basta/src/components/account/utils/AccountDetails.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/basta/src/components/account/utils/AccountFormular.vue b/basta/src/components/account/utils/AccountFormular.vue new file mode 100644 index 0000000..df3a01a --- /dev/null +++ b/basta/src/components/account/utils/AccountFormular.vue @@ -0,0 +1,159 @@ + + + + + + diff --git a/basta/src/components/account/utils/Food.vue b/basta/src/components/account/utils/Food.vue new file mode 100644 index 0000000..9991678 --- /dev/null +++ b/basta/src/components/account/utils/Food.vue @@ -0,0 +1,139 @@ + + + + +