From 7d61b947ba0de9794fb15aa6113d327934dc80df Mon Sep 17 00:00:00 2001 From: paolo Date: Sat, 20 Oct 2018 18:56:31 +0200 Subject: [PATCH] Aggiunta la Autenticazione con x-auth --- package-lock.json | 117 +++++++---- package.json | 12 +- quasar.conf.js | 10 +- src/components/Header.vue | 2 - src/components/views/auth/old_signup.vue | 235 ----------------------- src/components/views/login/signup.vue | 9 +- src/i18n.js | 4 +- src/plugins/aggiuntivi.js | 7 - src/router/index.js | 2 +- src/router/routes.js | 3 - src/store/modules/user.js | 56 +++--- tools/tools.js | 0 12 files changed, 120 insertions(+), 337 deletions(-) delete mode 100644 src/components/views/auth/old_signup.vue delete mode 100644 src/plugins/aggiuntivi.js delete mode 100644 tools/tools.js diff --git a/package-lock.json b/package-lock.json index 4431bf9..3c602d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1230,7 +1230,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "3.2.1", @@ -1454,6 +1455,17 @@ "has-ansi": "2.0.0", "strip-ansi": "3.0.1", "supports-color": "2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, "supports-color": { @@ -2011,9 +2023,9 @@ } }, "chart.js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", - "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.3.tgz", + "integrity": "sha512-3+7k/DbR92m6BsMUYP6M0dMsMVZpMnwkUyNSAbqolHKsbIzH2Q4LWVEHHYq7v0fmEV8whXE0DrjANulw9j2K5g==", "requires": { "chartjs-color": "2.2.0", "moment": "2.22.2" @@ -3494,7 +3506,8 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "eslint-scope": { "version": "4.0.0", @@ -4061,6 +4074,17 @@ "has-ansi": "2.0.0", "strip-ansi": "3.0.1", "supports-color": "2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, "supports-color": { @@ -4765,6 +4789,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -5771,38 +5796,6 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "ladash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ladash/-/ladash-1.2.0.tgz", - "integrity": "sha1-wlWPJYd5hc5VWqbnByO0SnLAw2Y=", - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, "last-call-webpack-plugin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", @@ -5852,8 +5845,7 @@ "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -7732,6 +7724,17 @@ "webpack-merge": "4.1.4", "webpack-node-externals": "1.7.2", "workbox-webpack-plugin": "3.5.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, "quasar-extras": { @@ -7991,6 +7994,15 @@ "dom-serializer": "0.1.0", "domelementtype": "1.3.0" } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } } } }, @@ -8869,6 +8881,7 @@ "version": "3.0.1", "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -9634,9 +9647,9 @@ "dev": true }, "vue-i18n": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.1.0.tgz", - "integrity": "sha512-Oj1FHLmLS/rGD6vhkB/JiRNLmOAG+ZSOqR9fjTy8fbKkTl+cdHCHOd+JDvPpR2aQufWA4+BDTnVavVAyQwWK4g==" + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.2.1.tgz", + "integrity": "sha512-eiqkUBP9uoADmHa1vz0jLS/JNvR+dODjn2nz14/ZD14hTaWpbOXoUZ0C5Nd2vbP6vOaxXjmkvkzJn/VISvX1BQ==" }, "vue-i18n-loader": { "version": "1.0.0", @@ -9695,6 +9708,17 @@ "has-ansi": "2.0.0", "strip-ansi": "3.0.1", "supports-color": "2.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } } }, "source-map": { @@ -9935,6 +9959,15 @@ "requires": { "is-extglob": "2.1.1" } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } } } }, diff --git a/package.json b/package.json index a8e0587..b28a7bc 100644 --- a/package.json +++ b/package.json @@ -3,24 +3,24 @@ "version": "1.0.0", "description": "MyApp Pao descrizione", "productName": "MyApp Pao", - "cordovaId": "org.cordova.quasar.app", + "cordovaId": "", "author": "paolo ", "private": true, "scripts": { "dev": "quasar dev -m pwa", "build": "quasar build -m pwa", - "test": "echo \"No test specified\" && exit 0" + "test": "quasar dev" }, "dependencies": { "axios": "^0.18.0", "chart": "^0.1.2", - "chart.js": "^2.7.2", + "chart.js": "^2.7.3", "countup.js": "^1.9.3", - "ladash": "^1.2.0", + "lodash": "^4.17.11", "quasar-extras": "^2.0.8", "roboto-font": "^0.1.0", "vivus": "^0.4.4", - "vue-i18n": "^8.1.0", + "vue-i18n": "^8.2.1", "vue-i18n-loader": "^1.0.0", "vuelidate": "^0.7.4" }, @@ -28,7 +28,7 @@ "dotenv": "^6.1.0", "json-loader": "^0.5.7", "quasar-cli": "^0.17.0", - "strip-ansi": "=3.0.1", + "strip-ansi": "^3.0.1", "vue-cli-plugin-quasar": "^0.17.1" }, "engines": { diff --git a/quasar.conf.js b/quasar.conf.js index 3d80cb3..4e2784e 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -7,8 +7,7 @@ const envparser = require('./config/envparser'); module.exports = function (ctx) { return { - // app plugins (/src/plugins) - plugins: ['i18n', 'axios', 'aggiuntivi', 'vuelidate'], + plugins: ['i18n', 'axios', 'vuelidate'], css: [ 'app.styl' ], @@ -45,8 +44,9 @@ module.exports = function (ctx) { }, devServer: { // https: true, - // port: 8080, - open: false // opens browser window automatically + port: 8080, + host: 'localhost', + open: true // opens browser window automatically }, framework: { components: [ @@ -71,6 +71,7 @@ module.exports = function (ctx) { 'QCardSeparator', 'QCardActions', 'QField', + 'QInput', 'QSelect', 'QPopover', 'QToggle', @@ -79,7 +80,6 @@ module.exports = function (ctx) { 'QAjaxBar', 'QChip', 'QCollapsible', - 'QInput', 'QCheckbox', ], diff --git a/src/components/Header.vue b/src/components/Header.vue index 013c481..e9cc605 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -54,13 +54,11 @@ import drawer from '../components/layout/drawer/drawer.vue' import messagePopover from '../components/layout/toolbar/messagePopover.vue' - import signup from '../components/views/auth/old_signup'; export default { components: { drawer, messagePopover, - appsignup: signup, }, created() { //this.$store.dispatch('initStocks'); diff --git a/src/components/views/auth/old_signup.vue b/src/components/views/auth/old_signup.vue deleted file mode 100644 index 41cfdd5..0000000 --- a/src/components/views/auth/old_signup.vue +++ /dev/null @@ -1,235 +0,0 @@ - - - - - diff --git a/src/components/views/login/signup.vue b/src/components/views/login/signup.vue index fb791c4..388ed5c 100644 --- a/src/components/views/login/signup.vue +++ b/src/components/views/login/signup.vue @@ -11,7 +11,6 @@ @@ -27,7 +26,6 @@ @@ -42,7 +40,6 @@ @@ -56,7 +53,6 @@ @@ -70,7 +66,6 @@ @@ -147,11 +142,9 @@ env() { return env }, - userIsAuthenticated() { - return this.getUsername() !== null; - }, }, validations: { + isAsync: true, form: { email: { required, email, diff --git a/src/i18n.js b/src/i18n.js index 65fed67..77b1bc0 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -6,7 +6,7 @@ const messages = { myDescriz: 'La prima App Libera e per Tutti' }, reg: { - richiesto: '* Richiesto', + richiesto: 'Campo Richiesto', email: 'Email', username : 'Nome Utente', password: 'Password', @@ -34,7 +34,7 @@ const messages = { myDescriz: 'The first Free app for Everyone' }, reg: { - richiesto: '* Required', + richiesto: 'Field Required', email: 'Email', username : 'Username', password: 'Password', diff --git a/src/plugins/aggiuntivi.js b/src/plugins/aggiuntivi.js deleted file mode 100644 index f2efe53..0000000 --- a/src/plugins/aggiuntivi.js +++ /dev/null @@ -1,7 +0,0 @@ -// import something here -import Vuelidate from 'vuelidate' - -// leave the export, even if you don't use it -export default ({ app, router, Vue }) => { - Vue.use(Vuelidate); -} diff --git a/src/router/index.js b/src/router/index.js index 33fdb27..adde2ce 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,7 +3,7 @@ import VueRouter from 'vue-router' import routes from './routes' -Vue.use(VueRouter); +Vue.use(VueRouter) /* * If not building with SSR mode, you can diff --git a/src/router/routes.js b/src/router/routes.js index 757d99d..0982a92 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -1,4 +1,3 @@ - import VueI18n from 'vue-i18n'; import Vue from 'vue' Vue.use(VueI18n); @@ -10,9 +9,7 @@ function load (component) { const routes = [ { path: '/', component: () => import('pages/Index.vue') }, - { path: '/prec', component: load('views/dashboard/one/dashboard'), meta: { name: 'Dashboard One' } }, { path: '/signup', component: load('views/login/signup'), meta: { name: 'Registration' } }, - { path: '/signin', component: load('views/login/signin'), meta: { name: 'Login' } }, { path: '/login', component: load('views/login/login'), meta: { name: 'Login' } }, ]; diff --git a/src/store/modules/user.js b/src/store/modules/user.js index d2d7c23..1f28be4 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -4,7 +4,7 @@ import Vuex from 'vuex' Vue.use(Vuex); import * as types from '../mutation-types' -import tools from '../../../tools/tools' +//import tools from '../../../tools/tools' export const Errori_MongoDb = { CALLING: 10, @@ -16,14 +16,17 @@ export const Errori_MongoDb = { export const state = { user: { + _id: '', email: '', username: null, password: '', ripetipassword: '', dateofbirth: '', - idToken: '', - userId: 0, + tokens: [{ + access: '', + token: '' + }] }, userServer: null, servercode: 0, @@ -33,7 +36,7 @@ function sendRequest(url, method, mydata) { const options = { method: method, //mode: 'no-cors', - headers: new Headers({'content-type': 'application/json'}), + headers: new Headers({'content-type': 'application/json', 'x-auth': ''}), cache: "no-cache", body: JSON.stringify(mydata), }; @@ -72,11 +75,8 @@ export const mutations = { state.user.dateOfBirth = payload; }, - authUser(state, userData) { - if (userData.email == state.user.email) { - state.user.idToken = userData.idToken; - state.user.userId = userData.email - } + authUser(state, email, mytoken) { + state.user.tokens.push({access: "auth", token: mytoken}); }, setUser(state, user) { state.userServer = user @@ -86,8 +86,7 @@ export const mutations = { state.servercode = servercode; }, clearAuthData(state) { - state.idToken = null - state.userId = null + state.tokens = []; } }; @@ -126,8 +125,17 @@ export const actions = { commit('setServerCode', Errori_MongoDb.CALLING); + var x_auth_token = null; + return sendRequest(call, "POST", params) .then((res) => { + console.log("HEADERS:"); + + for (let header of res.headers) { + console.log(header); + } + + x_auth_token = res.headers.get('x-auth'); myres = res; return res.json(); }) @@ -140,47 +148,43 @@ export const actions = { } commit('setServerCode', myres); - commit('setUser', body); if (myres.status === 200) { - var idToken = body._id; + var iduser = body._id; var email = body.email; if (process.env.DEV) { console.log("EMAIL = " + body.email); - console.log("ID= " + idToken); + console.log("IDUSER= " + iduser); + commit('authUser', email, x_auth_token); } - commit('authUser', { - idToken: idToken, - email: email - }); + const now = new Date(); //const expirationDate = new Date(now.getTime() + myres.data.expiresIn * 1000); const expirationDate = new Date(now.getTime() + 1000); - localStorage.setItem('token', idToken); - //localStorage.setItem('userId', myres.data.localId) + localStorage.setItem('token', x_auth_token); + localStorage.setItem('userId', iduser); localStorage.setItem('expirationDate', expirationDate); //dispatch('storeUser', authData); //dispatch('setLogoutTimer', myres.data.expiresIn); - console.log("2 - FINE SIGNUP...."); return Errori_MongoDb.OK; } else if (myres.status === 404) { if (process.env.DEV) { console.log("CODE = " + body.code); } - console.log("2 - FINE SIGNUP...."); return body.code; } else { if (process.env.DEV) { console.log("CODE = " + body.code); } - console.log("2 - FINE SIGNUP...."); return body.code; } }) - .catch( (error) => { - console.log("ERROREEEEEEEEE"); - console.log(error); + .catch((error) => { + if (process.env.DEV) { + console.log("ERROREEEEEEEEE"); + console.log(error); + } commit('setServerCode', Errori_MongoDb.ERR_GENERICO); return Errori_MongoDb.ERR_GENERICO; }); diff --git a/tools/tools.js b/tools/tools.js deleted file mode 100644 index e69de29..0000000