userCache.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * 用户缓存管理
  3. */
  4. const USER_INFO_KEY = 'userInfo'
  5. const TOKEN_KEY = 'token'
  6. /**
  7. * 保存用户信息
  8. * @param {object} userInfo - 用户信息对象
  9. * @param {string} token - 登录 token
  10. */
  11. export const saveUserInfo = (userInfo, token) => {
  12. try {
  13. uni.setStorageSync(USER_INFO_KEY, userInfo)
  14. uni.setStorageSync(TOKEN_KEY, token)
  15. return true
  16. } catch (e) {
  17. console.error('保存用户信息失败', e)
  18. return false
  19. }
  20. }
  21. /**
  22. * 获取用户信息
  23. * @returns {object|null} 用户信息对象,如果没有则返回 null
  24. */
  25. export const getUserInfo = () => {
  26. try {
  27. const userInfo = uni.getStorageSync(USER_INFO_KEY)
  28. if (userInfo) {
  29. return userInfo
  30. }
  31. return null
  32. } catch (e) {
  33. console.error('获取用户信息失败', e)
  34. return null
  35. }
  36. }
  37. /**
  38. * 获取 token
  39. * @returns {string} token 字符串
  40. */
  41. export const getToken = () => {
  42. try {
  43. return uni.getStorageSync(TOKEN_KEY) || ''
  44. } catch (e) {
  45. console.error('获取 token 失败', e)
  46. return ''
  47. }
  48. }
  49. /**
  50. * 检查是否已登录
  51. * @returns {boolean} 是否已登录
  52. */
  53. export const isLogin = () => {
  54. const userInfo = getUserInfo()
  55. const token = getToken()
  56. return !!(userInfo && token)
  57. }
  58. /**
  59. * 清除用户信息(退出登录)
  60. */
  61. export const clearUserInfo = () => {
  62. try {
  63. uni.removeStorageSync(USER_INFO_KEY)
  64. uni.removeStorageSync(TOKEN_KEY)
  65. return true
  66. } catch (e) {
  67. console.error('清除用户信息失败', e)
  68. return false
  69. }
  70. }
  71. export default {
  72. saveUserInfo,
  73. getUserInfo,
  74. getToken,
  75. isLogin,
  76. clearUserInfo
  77. }