33 lines
929 B
JavaScript
33 lines
929 B
JavaScript
import { defineStore } from "pinia"
|
|
import { login, refreshToken } from "@/service/api/authentication"
|
|
import cache from "@/utils/cache"
|
|
import router from "@/router"
|
|
import { ElMessage } from "element-plus"
|
|
export const useLoginStore = defineStore("loginStore", {
|
|
state: () => ({
|
|
token: cache.getItem("token") ?? ""
|
|
}),
|
|
actions: {
|
|
setToken(accessToken) {
|
|
this.token = accessToken
|
|
cache.setItem("token", accessToken)
|
|
},
|
|
async loginForAccessToken(userInfo) {
|
|
const res = await login(userInfo)
|
|
if (res.code != 200) return
|
|
this.setToken(res.data.accessToken)
|
|
ElMessage.success("登录成功!")
|
|
router.push("/navigation")
|
|
},
|
|
async loginForRefreshToken() {
|
|
const res = await refreshToken()
|
|
if (res.code == 200) {
|
|
this.setToken(res.data.accessToken)
|
|
return true // 刷新成功
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
})
|