From fb942824ca94d25ecc19ba67287a3eda7122dfd2 Mon Sep 17 00:00:00 2001 From: Aleksei Tsybin Date: Wed, 2 Mar 2022 00:41:13 +0300 Subject: [PATCH] feature: add login --- package.json | 1 + src/App.vue | 2 +- src/components/HeaderComponent.vue | 15 ++++++------ src/main.js | 3 +++ src/router/index.js | 33 ++++++++++++++++++++++---- src/views/LoginView.vue | 38 +++++++++++++++++++++++++++--- yarn.lock | 9 ++++++- 7 files changed, 85 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index f21cf8c..c6851aa 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^0.26.0", "buefy": "^0.9.17", "core-js": "^3.8.3", "vue": "^2.6.14", diff --git a/src/App.vue b/src/App.vue index 48f4dd1..5853f0b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/HeaderComponent.vue b/src/components/HeaderComponent.vue index 32ce6af..6b219d6 100644 --- a/src/components/HeaderComponent.vue +++ b/src/components/HeaderComponent.vue @@ -7,7 +7,7 @@ @@ -32,10 +33,11 @@ Password @@ -44,7 +46,8 @@ class="m-0" rounded onclick="this.blur()" - @click.prevent="isValid = !isValid" + type="submit" + @click.prevent="handleSubmit" > Log in @@ -62,8 +65,37 @@ export default { data() { return { isValid: true, + username: null, + password: null, } }, + methods: { + handleSubmit() { + this.$emit('loggedIn') // TODO убрать + if (this.password.length > 0 && this.username.length > 0) { + this.$http + .post('https://avatars.zorg.cc/api/login', { + username: this.username, + password: this.password, + }) + .then((response) => { + // localStorage.setItem('user', JSON.stringify(response.data.user)) + localStorage.setItem('jwt', response.data.jwt_token) + if (localStorage.getItem('jwt') != null) { + this.$emit('loggedIn') + if (this.$route.params.nextUrl != null) { + this.$router.push(this.$route.params.nextUrl) + } else { + this.$router.push('home') + } + } + }) + .catch(function (error) { + console.error(error.response) + }) + } + }, + }, } diff --git a/yarn.lock b/yarn.lock index 3692087..5027dad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1836,6 +1836,13 @@ autoprefixer@^10.2.4: picocolors "^1.0.0" postcss-value-parser "^4.2.0" +axios@^0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.0.tgz#9a318f1c69ec108f8cd5f3c3d390366635e13928" + integrity sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og== + dependencies: + follow-redirects "^1.14.8" + babel-loader@^8.2.2: version "8.2.3" resolved "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" @@ -3179,7 +3186,7 @@ flatted@^3.1.0: resolved "https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -follow-redirects@^1.0.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.8: version "1.14.9" resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==