user.uts 921 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { reactive } from 'vue'
  2. export type UserInfo = {
  3. id : string
  4. nickname : string
  5. avatar : string
  6. }
  7. export type UserState = {
  8. token : string
  9. userInfo : UserInfo | null
  10. }
  11. export const userStore = reactive({
  12. token: '',
  13. userInfo: null
  14. } as UserState) as UserState
  15. export function setToken(token : string) {
  16. userStore.token = token
  17. uni.setStorageSync('token', token)
  18. }
  19. export function setUserInfo(info : UserInfo | null) {
  20. userStore.userInfo = info
  21. uni.setStorageSync('userInfo', info)
  22. }
  23. export function logout() {
  24. userStore.token = ''
  25. userStore.userInfo = null
  26. uni.removeStorageSync('token')
  27. uni.removeStorageSync('userInfo')
  28. }
  29. export function initStore() {
  30. const token = uni.getStorageSync('token')
  31. if (token != null) {
  32. userStore.token = token as string
  33. }
  34. const info = uni.getStorageSync('userInfo')
  35. if (info != null) {
  36. userStore.userInfo = info as UserInfo
  37. }
  38. }