authStore.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. // 初始化时从Storage加载
  30. loadUserInfo() {
  31. this.userInfo = uni.getStorageSync('USER_INFO') || null
  32. },
  33. cleanUserInfo() {
  34. this.userInfo = null
  35. uni.removeStorageSync("USER_INFO")
  36. },
  37. setPhone(data) {
  38. this.phone = data
  39. uni.setStorageSync('phone', data)
  40. },
  41. // 初始化时从Storage加载
  42. loadPhone() {
  43. this.phone = uni.getStorageSync('phone') || null
  44. },
  45. cleanPhone() {
  46. this.phone = null
  47. uni.removeStorageSync("phone")
  48. },
  49. },
  50. getters: {
  51. isAuthenticated(state) {
  52. return !!state.token; // 如果 token 存在,返回 true;否则返回 false
  53. },
  54. isUserInfo(state){
  55. return !!state.userInfo;
  56. }
  57. }
  58. })