auth.js 933 B

12345678910111213141516171819202122232425262728
  1. import { useFiltersStore } from "@/store/filter.js";
  2. import axios from "axios";
  3. export default defineNuxtRouteMiddleware((to, from) => {
  4. const filtersStore = useFiltersStore();
  5. const getLoginFlag = () => {
  6. let param = new FormData();
  7. param.append("grant_type", "refresh_token");
  8. param.append("refresh_token", filtersStore.getRefreshToken);
  9. post("v3/frontLogin/oauth/token", param).then(
  10. (res) => {
  11. if (res.state == 200) {
  12. filtersStore.setToken(res.data.access_token);
  13. filtersStore.setTime(new Date().getTime().toString()); //存储refresh_token更新时间
  14. }
  15. },
  16. (err) => {
  17. console.log("更新access_token出错:", err);
  18. }
  19. );
  20. };
  21. if (filtersStore.getRefreshToken && new Date().getTime() - filtersStore.getTime * 1 > 58 * 60 * 1000) {
  22. getLoginFlag();
  23. }
  24. if (!filtersStore.getLoginFlag) {
  25. return navigateTo("/login");
  26. }
  27. });