Files
myocardial/resources/js/stores/auth.js
T
2026-06-23 13:28:38 +07:00

73 lines
1.7 KiB
JavaScript

import axiosIns from "@/plugins/axios"
import { defineStore } from "pinia"
export const useAuthStore = defineStore("auth", {
state: () => {
var access_token = localStorage.getItem("access_token")
if (!access_token) {
access_token = null
}
var role = localStorage.getItem("role")
if (!role) {
role = null
}
var user = JSON.parse(localStorage.getItem("user"))
if (!user) {
user = null
}
var profile = JSON.parse(localStorage.getItem("profile"))
if (!profile) {
profile = null
}
return {
access_token,
role,
user,
profile,
}
},
getters: {
isAuthenticated() {
return this.access_token !== null && this.access_token !== undefined
},
},
actions: {
saveData(access_token) {
localStorage.setItem("access_token", access_token)
this.access_token = access_token
},
deleteData() {
localStorage.removeItem("access_token")
localStorage.removeItem("user")
localStorage.removeItem("role")
this.access_token = null
this.user = null
this.role = null
this.profile = null
},
async getRoleUser() {
// pindahin
},
async getUser() {
if (!this.access_token) return
try {
const response = await axiosIns
.get("/api/v1/account/profile")
this.user = response.data.data.user
localStorage.setItem("user", JSON.stringify(this.user))
this.role = response.data.data.user.role
localStorage.setItem("role", this.role)
this.profile = response.data.data.profile
localStorage.setItem("profile", JSON.stringify(this.profile))
} catch (error) {
console.log(error)
}
},
},
})