permission.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /** @format */
  2. import { getToken } from "@/utils/auth";
  3. // 登录页面
  4. const loginPage = "/pages/login";
  5. // 页面白名单
  6. const whiteList = [
  7. "/pages/login",
  8. "/pages/register",
  9. "/pages/common/webview/index",
  10. "/pages/personRegistered/bindCompanies",
  11. "pages/personRegistered/index",
  12. "pagesB/bindweixin",
  13. "pages/companiesRegistered/companiesPassword",
  14. "pages/mine/help",
  15. ];
  16. // 检查地址白名单
  17. function checkWhite(url) {
  18. const path = url.split("?")[0];
  19. return whiteList.indexOf(path) !== -1;
  20. }
  21. // 页面跳转验证拦截器
  22. let list = ["redirectTo", "reLaunch", "switchTab"];
  23. list.forEach((item) => {
  24. uni.addInterceptor(item, {
  25. invoke(to) {
  26. if (getToken()) {
  27. if (to.url === loginPage) {
  28. uni.reLaunch({
  29. url: "/",
  30. });
  31. }
  32. return true;
  33. } else {
  34. if (checkWhite(to.url)) {
  35. return true;
  36. }
  37. uni.reLaunch({
  38. url: loginPage,
  39. });
  40. return false;
  41. }
  42. },
  43. fail(err) {
  44. console.log(err);
  45. },
  46. });
  47. });