authStore.js 1.8 KB

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