代码拉取完成,页面将自动刷新
同步操作将从 CyrusZhou/MP_WeiXin_ChatGPT 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//middleware.ts
import { getIronSession } from "iron-session/edge";
import { sessionOptions } from "./lib/session";
import { NextRequest, NextResponse } from "next/server";
export const middleware = async (req: NextRequest) => {
// Get the pathname of the request (e.g. /, /protected)
const path = req.nextUrl.pathname;
const locale = typeof localStorage !== 'undefined' ? localStorage.getItem('lang') : "cn";
const res = NextResponse.next();
if (path === "/") {
return res;
}
console.log('sessionOptions:',sessionOptions);
const session = await getIronSession(req, res, sessionOptions);
const { user } = session;
console.log('path:',path);
console.log('session:',session);
if (!user?.isLoggedIn && /^\/admin(?!\/login)/.test(path)) {
return NextResponse.redirect(new URL(`/${locale}/admin/login`, req.url));
} else if (user?.isLoggedIn && /^\/admin\/?(?:login\/?)?$/.test(path)) {
return NextResponse.redirect(new URL(`/${locale}/admin/dashboard`, req.url));
}
return res;
}
export const config = {
matcher: [
/*
* Match all request paths except for the ones starting with:
* - api (API routes)
* - _next/static (static files)
* - _next/image (image optimization files)
* - favicon.ico (favicon file)
*/
'/((?!api|_next/static|_next/image|favicon.ico).*)',
],
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。