authStore.js 942 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { defineStore } from 'pinia'
  2. import { getToken,setToken,removeToken } from '@/utils/auth.js'
  3. export const useAuthStore = defineStore('auth', {
  4. state: () => ({
  5. token: null,
  6. userInfo: null
  7. }),
  8. actions: {
  9. setAuthToken(newToken) {
  10. this.token = newToken
  11. // 可以选择将 token 存储到 localStorage 或 sessionStorage
  12. setToken(newToken)
  13. },
  14. clearAuthToken() {
  15. this.token = null
  16. removeToken()
  17. },
  18. loadAuthToken() {
  19. const savedToken = getToken()
  20. if (savedToken) {
  21. this.token = savedToken
  22. }
  23. },
  24. setUserInfo(data) {
  25. this.userInfo = data
  26. uni.setStorageSync('USER_INFO', data)
  27. },
  28. // 初始化时从Storage加载
  29. loadUserInfo() {
  30. this.userInfo = uni.getStorageSync('USER_INFO') || null
  31. }
  32. },
  33. getters: {
  34. isAuthenticated(state) {
  35. return !!state.token; // 如果 token 存在,返回 true;否则返回 false
  36. },
  37. isUserInfo(state){
  38. return !!state.userInfo;
  39. }
  40. }
  41. })