authStore.js 1.5 KB

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