import { checkAuth } from "@/utils/auth"; import { useRouter, usePathname, useSearchParams } from "next/navigation"; import { useEffect } from "react"; import { get } from "@/utils/storeInfo"; import { Dialog, Toast } from "antd-mobile"; import { save } from "@/utils/storeInfo"; import { removeUserInfo } from "@/utils/storeInfo"; import { openUrlWithBrowser } from "@/utils/tools"; export default function WithAuth(WrappedComponent) { const router = useRouter(); const pathname = usePathname(); const searchParams = useSearchParams(); useEffect(() => { var ua = navigator.userAgent.toLowerCase(); if ( (ua.indexOf("quark") > -1 || ua.indexOf("mqqbrowser") > -1) && ua.indexOf("iphone") > -1 ) { // 夸克浏览器 Dialog.show({ title: "提示", content: "暂时不支持此浏览器,请使用Safari访问铁粉空间!", // buttonText: "确认", bodyStyle: { maxHeight: "none", width: "80vw", position: "fixed", top: "200px", left: "10vw", "--text-color": "#fff", color: "#fff", }, // cancelText:"确认", // confirmText:"取消", style: { "--text-color": "#fff", }, }); openUrlWithBrowser(pathname); } }, []); useEffect(() => { // if (searchParams.get("inviter")) { // save("inviter", Number(searchParams.get("inviter"))); // } if (!pathname.includes("webView") && !pathname.includes("login")) { checkLogin(); } // console.log("isLogin",!pathname.includes("webView") && !pathname.includes("login")) }, [pathname]); const checkLogin = async () => { const hasToken = await get("token"); if (pathname.includes("wxpay_h5")) { return; } if (hasToken) { const currentIsLogin = await checkAuth(); if (!currentIsLogin) { Toast.show({ icon: "fail", content: "当前登录失效,请重新登录", position: "top", }); removeUserInfo(); router.push("/login"); } else { if (pathname.includes("login")) { router.push("/"); } } } else if (!searchParams.get("forgetPassword")) { removeUserInfo(); router.push("/login"); } }; return WrappedComponent; }