authStore.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. phone: null
  8. }),
  9. actions: {
  10. setAuthToken(newToken) {
  11. this.token = newToken
  12. // 可以选择将 token 存储到 localStorage 或 sessionStorage
  13. setToken(newToken)
  14. },
  15. clearAuthToken() {
  16. this.token = null
  17. removeToken()
  18. },
  19. loadAuthToken() {
  20. const savedToken = getToken()
  21. if (savedToken) {
  22. this.token = savedToken
  23. }
  24. },
  25. setUserInfo(data) {
  26. this.userInfo = data
  27. uni.setStorageSync('USER_INFO', data)
  28. },
  29. setUserIcon(data) {
  30. this.userInfo.userIcon = data
  31. uni.setStorageSync('USER_INFO', this.userInfo)
  32. },
  33. // 初始化时从Storage加载
  34. loadUserInfo() {
  35. this.userInfo = uni.getStorageSync('USER_INFO') || null
  36. },
  37. cleanUserInfo() {
  38. this.userInfo = null
  39. uni.removeStorageSync("USER_INFO")
  40. },
  41. setPhone(data) {
  42. this.phone = data
  43. uni.setStorageSync('phone', data)
  44. },
  45. // 初始化时从Storage加载
  46. loadPhone() {
  47. this.phone = uni.getStorageSync('phone') || null
  48. },
  49. cleanPhone() {
  50. this.phone = null
  51. uni.removeStorageSync("phone")
  52. },
  53. },
  54. getters: {
  55. isAuthenticated(state) {
  56. return !!state.token; // 如果 token 存在,返回 true;否则返回 false
  57. },
  58. isUserInfo(state){
  59. return !!state.userInfo;
  60. }
  61. }
  62. })