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 @@