| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- import JwtService from "@@/services/JwtService"
- import appStore from "@s"
- import apis from "@/api"
- import type { User } from "@@/types/User"
- import type { LoginData } from "@@/types/Account"
- import { use } from "echarts"
- import router from "@r"
- export const useAuthStore = defineStore("auth", () => {
- const errors = ref({})
- const user = ref<User>({} as User)
- const isAuthenticated = ref(!!JwtService.getToken())
- const setToken = (authToken: string) => {
- isAuthenticated.value = true
- user.value.token = authToken
- JwtService.saveToken(authToken)
- }
- const setUser = (data: any) => {
- const u = data.user
- user.value.tenantId = u.tenantId
- appStore.tenantStore.setTenantId(u.tenantId)
- user.value.userId = u.userId
- user.value.userName = u.userName
- user.value.nickName = u.nickName
- user.value.email = u.email
- user.value.phonenumber = u.phonenumber
- user.value.orgId = u.orgId
- user.value.orgName = u.org?.orgName
- user.value.remark = u.remark
- user.value.org = u.org
- user.value.role = u.roles ? u.roles[0] : []
- changeAvatar(u.avatar)
- user.value.permissions = data.permissions || []
- if (data.roles && data.roles.length > 0) {
- // 验证返回的roles是否是一个非空数组
- user.value.roles = data.roles
- } else {
- user.value.roles = ["ROLE_DEFAULT"]
- }
- }
- function isSuperAdmin() {
- return user.value.userName === "admin" || user.value.roles.includes("super_admin")
- }
- function changeAvatar(avatar: any) {
- user.value.avatar = avatar
- // avatar == "" || avatar == null
- // ? // ? getAssetPath("media/avatars/300-1.jpg")
- // undefined
- // : import.meta.env.VITE_APP_BASE_API + "/resource/oss" + avatar
- }
- const purgeAuth = () => {
- isAuthenticated.value = false
- appStore.tagViewStore.delAllViews()
- appStore.bodyConfigStore.resetLayoutConfig()
- appStore.tenantStore.setTenantId("")
- user.value = {} as User
- localCache.remove("tenantId")
- JwtService.destroyToken()
- }
- function login(loginData: LoginData) {
- return new Promise((resolve, reject) => {
- apis.loginApi
- .login(loginData)
- .then(({ data }) => {
- setToken(data.access_token)
- resolve(true)
- })
- .catch((error) => {
- reject(error)
- })
- })
- }
- function socialLogin(type: string) {
- return apis.loginApi.authBinding(type)
- }
- function callback(loginData: LoginData) {
- return new Promise((resolve, reject) => {
- apis.loginApi
- .callback(loginData)
- .then(({ data }) => {
- setToken(data.access_token)
- resolve(true)
- })
- .catch((error) => {
- reject(error)
- })
- })
- }
- function getInfo() {
- return new Promise((resolve, reject) => {
- apis.loginApi
- .getInfo()
- .then(({ data }) => {
- setUser(data)
- resolve(data)
- })
- .catch((error) => {
- reject(error)
- })
- })
- }
- // 退出系统
- function logout(isJump = true) {
- return new Promise((resolve, reject) => {
- apis.loginApi
- .logout()
- .then(() => {
- purgeAuth()
- if (isJump) {
- router.push(`/login?redirect=${encodeURIComponent(window.location.pathname)}`)
- }
- resolve(true)
- })
- .catch((error) => {
- reject(error)
- })
- })
- }
- return {
- errors,
- user,
- isAuthenticated,
- isSuperAdmin,
- login,
- socialLogin,
- callback,
- logout,
- getInfo,
- changeAvatar
- }
- })
|