token.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import Router from '@/router';
  2. import APP from '@/services';
  3. import { getLoginData } from '@/services/bus/login';
  4. import { tokenCheck } from '@/services/socket/login/index';
  5. import timerUtil from '@/utils/timer/timerUtil';
  6. /**
  7. * token 分为 游客和登录token
  8. * 未登录取游客token
  9. */
  10. export function getToken(): string {
  11. let result: string;
  12. const loginData = getLoginData();
  13. if (loginData) {
  14. result = loginData.Token;
  15. } else {
  16. result = APP.get('touristToken');
  17. }
  18. return result;
  19. }
  20. /**
  21. * 处理token校验
  22. */
  23. export function handleTokenCheck() {
  24. return tokenCheck().catch((err) => {
  25. Router.push({ path: '/login' }); // 回到登录页面
  26. console.error(`token校验失败:${err}`);
  27. return Promise.reject(`token校验失败:${err}`);
  28. });
  29. }
  30. /**
  31. * 轮询校验token
  32. */
  33. export function checkTokenAction(): void {
  34. const timeDiff = APP.get('checkTokenTimeDiff');
  35. timerUtil.setInterval(() => {
  36. handleTokenCheck()
  37. }, timeDiff, 'tokenCheck');
  38. }
  39. /**
  40. * 停止校验token
  41. */
  42. export function stopCheckToken() {
  43. console.log('停止校验token')
  44. timerUtil.clearInterval('tokenCheck')
  45. }