From 95dfe76fb02f8ac37ef61a9b34b7588246c7a12c Mon Sep 17 00:00:00 2001 From: Dhaverd Date: Sun, 27 Oct 2024 03:55:29 +0800 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20axios-=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D1=8B=20=D0=B2=20store?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/store/user.js | 69 +++++++++++++++++++++++++++ resources/views/Auth/Login.vue | 35 +++++++------- resources/views/Auth/Registration.vue | 30 ++++++------ resources/views/Welcome.vue | 55 ++++----------------- 4 files changed, 108 insertions(+), 81 deletions(-) diff --git a/resources/store/user.js b/resources/store/user.js index db2d8b8..4e8c64e 100644 --- a/resources/store/user.js +++ b/resources/store/user.js @@ -1,4 +1,5 @@ import { defineStore } from 'pinia' +import axios from "axios"; export const useUserStore = defineStore('user', { state: () => ({ @@ -15,5 +16,73 @@ export const useUserStore = defineStore('user', { this.token = token; localStorage.setItem('auth_token', token); }, + checkUser(){ + axios.get( + '/api/auth/user', + { + headers: + { + Authorization: `Bearer ${this.token}`, + token: this.token + } + } + ).then((res) => { + this.setUser(res.data); + }).catch((error)=>{ + this.nullifyUser(); + }) + }, + async login(email, password, rememberMe){ + await axios.post( + '/api/auth/login', + { + 'email': email, + 'password': password, + 'remember_me': rememberMe + }).then((res) => { + this.setUser(res.data.user); + this.setToken(res.data.accessToken); + return true; + }).catch((error)=>{ + if (!error.response){ + return false; + } + return error.response.data.message; + }) + }, + async registration(login, email, password, repeatPassword){ + await axios.post( + '/api/auth/register', + {'name': login, + 'email': email, + 'password': password, + 'c_password': repeatPassword + }).then((res) => { + this.setUser(res.data.user); + this.setToken(res.data.accessToken); + return true; + }).catch((error)=>{ + if (!error.response){ + return false; + } + return error.response.data.message; + }) + }, + logout(){ + axios.get('/api/auth/logout', + { + headers: + { + Authorization: `Bearer ${this.token}`, + token: this.token + } + } + ); + this.nullifyUser(); + }, + nullifyUser(){ + this.setUser(null); + this.setToken(null); + } }, }) diff --git a/resources/views/Auth/Login.vue b/resources/views/Auth/Login.vue index fd01392..89e6162 100644 --- a/resources/views/Auth/Login.vue +++ b/resources/views/Auth/Login.vue @@ -1,5 +1,4 @@