userInfo.js 4.8 KB

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