authStore.js 2.1 KB

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