login.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { useAppStore } from "@/stores/app.js";
  2. import Cache from "../utils/cache";
  3. import { Debounce } from "@/utils/validate.js";
  4. import {
  5. LOGIN_STATUS,
  6. USER_INFO,
  7. EXPIRES_TIME,
  8. STATE_R_KEY,
  9. BACK_URL,
  10. } from "@/config/cache";
  11. function prePage() {
  12. let pages = getCurrentPages();
  13. let prePage = pages[pages.length - 1];
  14. return prePage.route;
  15. }
  16. export const toLogin = Debounce(_toLogin, 800);
  17. export function _toLogin(push, pathLogin) {
  18. const appStore = useAppStore();
  19. appStore.LOGOUT();
  20. let path = prePage();
  21. let login_back_url = Cache.get(BACK_URL);
  22. uni.navigateTo({
  23. url: "/pages/users/login/index",
  24. });
  25. }
  26. export function checkLogin() {
  27. let token = Cache.get(LOGIN_STATUS);
  28. let expiresTime = Cache.get(EXPIRES_TIME);
  29. let newTime = Math.round(new Date() / 1000);
  30. const appStore = useAppStore();
  31. // 如果没有token,清除所有登录信息
  32. if (!token) {
  33. Cache.clear(LOGIN_STATUS);
  34. Cache.clear(EXPIRES_TIME);
  35. Cache.clear(USER_INFO);
  36. Cache.clear(STATE_R_KEY);
  37. return false;
  38. }
  39. // 如果有过期时间且已过期,清除所有登录信息
  40. if (expiresTime && expiresTime < newTime) {
  41. Cache.clear(LOGIN_STATUS);
  42. Cache.clear(EXPIRES_TIME);
  43. Cache.clear(USER_INFO);
  44. Cache.clear(STATE_R_KEY);
  45. return false;
  46. }
  47. // 恢复登录状态
  48. appStore.UPDATE_LOGIN(token);
  49. let userInfo = Cache.get(USER_INFO, true);
  50. if (userInfo) {
  51. appStore.UPDATE_USERINFO(userInfo);
  52. }
  53. return true;
  54. }