userInfo.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. import tool from './tool'
  2. import Vue from 'vue'
  3. import router from '@/router'
  4. import baseInfo from './baseInfo'
  5. const userInfo = {
  6. clear () {
  7. localStorage.removeItem('userId')
  8. localStorage.removeItem('userName')
  9. localStorage.removeItem('accessToken')
  10. localStorage.removeItem('accessTokenExpiresIn')
  11. localStorage.removeItem('accessTokenUpdateAt')
  12. localStorage.removeItem('refreshToken')
  13. localStorage.removeItem('refreshTokenExpiresIn')
  14. localStorage.removeItem('refreshTokenUpdateAt')
  15. localStorage.removeItem('loginTimestamp')
  16. localStorage.removeItem('baseData')
  17. baseInfo.clear()
  18. },
  19. hasLogin () {
  20. let accessToken = this.accessToken()
  21. if (!accessToken) {
  22. return false
  23. }
  24. // 检测会员的refreshToken是否已经失效,如果已经失效,那么则清空登录信息,返回失败
  25. let refreshToken = this.refreshToken()
  26. let refreshTokenExpiresIn = this.refreshTokenExpiresIn()
  27. let refreshTokenUpdateAt = this.refreshTokenUpdateAt()
  28. if (refreshToken && refreshTokenExpiresIn && parseInt(refreshTokenExpiresIn) - 30 + parseInt(refreshTokenUpdateAt) > parseInt(tool.getTimestamp())) {
  29. return true
  30. } else {
  31. this.clear()
  32. // 跳转到登录页
  33. if (router.currentRoute.path !== '/login') {
  34. router.push('/login')
  35. }
  36. return false
  37. }
  38. },
  39. userId (...arg) {
  40. if (arg.length === 0) {
  41. return localStorage.getItem('userId')
  42. }
  43. if (arg[0] === '') {
  44. localStorage.removeItem('userId')
  45. return
  46. }
  47. localStorage.setItem('userId', arg[0])
  48. },
  49. userName (...arg) {
  50. if (arg.length === 0) {
  51. return localStorage.getItem('userName')
  52. }
  53. if (arg[0] === '') {
  54. localStorage.removeItem('userName')
  55. return
  56. }
  57. localStorage.setItem('userName', arg[0])
  58. },
  59. accessToken (...arg) {
  60. if (arg.length === 0) {
  61. return localStorage.getItem('accessToken')
  62. }
  63. if (arg[0] === '') {
  64. localStorage.removeItem('accessToken')
  65. return
  66. }
  67. localStorage.setItem('accessToken', arg[0])
  68. },
  69. accessTokenUpdateAt (...arg) {
  70. if (arg.length === 0) {
  71. return localStorage.getItem('accessTokenUpdateAt')
  72. }
  73. if (arg[0] === '') {
  74. localStorage.removeItem('accessTokenUpdateAt')
  75. return
  76. }
  77. localStorage.setItem('accessTokenUpdateAt', arg[0])
  78. },
  79. accessTokenExpiresIn (...arg) {
  80. if (arg.length === 0) {
  81. return localStorage.getItem('accessTokenExpiresIn')
  82. }
  83. if (arg[0] === '') {
  84. localStorage.removeItem('accessTokenExpiresIn')
  85. return
  86. }
  87. localStorage.setItem('accessTokenExpiresIn', arg[0])
  88. },
  89. refreshToken (...arg) {
  90. if (arg.length === 0) {
  91. return localStorage.getItem('refreshToken')
  92. }
  93. if (arg[0] === '') {
  94. localStorage.removeItem('refreshToken')
  95. return
  96. }
  97. localStorage.setItem('refreshToken', arg[0])
  98. },
  99. refreshTokenUpdateAt (...arg) {
  100. if (arg.length === 0) {
  101. return localStorage.getItem('refreshTokenUpdateAt')
  102. }
  103. if (arg[0] === '') {
  104. localStorage.removeItem('refreshTokenUpdateAt')
  105. return
  106. }
  107. localStorage.setItem('refreshTokenUpdateAt', arg[0])
  108. },
  109. refreshTokenExpiresIn (...arg) {
  110. if (arg.length === 0) {
  111. return localStorage.getItem('refreshTokenExpiresIn')
  112. }
  113. if (arg[0] === '') {
  114. localStorage.removeItem('refreshTokenExpiresIn')
  115. return
  116. }
  117. localStorage.setItem('refreshTokenExpiresIn', arg[0])
  118. },
  119. loginTimestamp (...arg) {
  120. if (arg.length === 0) {
  121. return localStorage.getItem('loginTimestamp')
  122. }
  123. if (arg[0] === '') {
  124. localStorage.removeItem('loginTimestamp')
  125. return
  126. }
  127. localStorage.setItem('loginTimestamp', arg[0])
  128. },
  129. baseData (...arg) {
  130. if (arg.length === 0) {
  131. return JSON.parse(localStorage.getItem('baseData'))
  132. }
  133. if (arg[0] === '') {
  134. localStorage.removeItem('baseData')
  135. return
  136. }
  137. localStorage.setItem('baseData', JSON.stringify(arg[0]))
  138. },
  139. updateLoginAllInfo (response) {
  140. // 更新本地accessToken
  141. userInfo.accessToken(response.accessToken)
  142. userInfo.accessTokenExpiresIn(response.accessTokenExpiresIn)
  143. userInfo.accessTokenUpdateAt(response.accessTokenUpdateAt)
  144. userInfo.refreshToken(response.refreshToken)
  145. userInfo.refreshTokenExpiresIn(response.refreshTokenExpiresIn)
  146. userInfo.refreshTokenUpdateAt(response.refreshTokenUpdateAt)
  147. userInfo.loginTimestamp(response.accessTokenUpdateAt)
  148. },
  149. logout() {
  150. this.clear()
  151. // 跳转到登录页
  152. if (router.currentRoute.path !== '/login') {
  153. router.push('/login')
  154. }
  155. },
  156. }
  157. export default userInfo