watchToken.ts 709 B

123456789101112131415161718192021222324252627282930
  1. import { TokenKey } from "/@/utils/auth";
  2. import { loadEnv } from "@build/index";
  3. import CryptoJS from "crypto-js";
  4. import router from "./../router";
  5. const { VITE_SECRET_KEY } = loadEnv();
  6. function changeToken(token: string) {
  7. if (!token) return;
  8. const encJson = CryptoJS.AES.encrypt(
  9. JSON.stringify({ token }),
  10. VITE_SECRET_KEY
  11. );
  12. const encData = CryptoJS.enc.Base64.stringify(
  13. CryptoJS.enc.Utf8.parse(encJson)
  14. );
  15. router.push("/accept?t=" + encData);
  16. }
  17. function listener(event) {
  18. const { key, newValue } = event;
  19. switch (key) {
  20. case TokenKey:
  21. changeToken(newValue);
  22. break;
  23. }
  24. }
  25. export const registerEvent = () => window.addEventListener("storage", listener);