我想使用下一个认证中间件来保护所有页面。我通过查看next-auth的官方文档(next-auth)来设置中间件,并确认它可以在不登录的情况下重定向。
但是,当我登录时,它仍然重定向到登录页面。
请让我知道我做错了什么
[...nextauth].ts
import NextAuth, { NextAuthOptions } from "next-auth";
import GoogleProvider from "next-auth/providers/google";
import client from "@/libs/server/client";
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import { Session } from "next-auth/";
interface UserSession extends Session {
id: string;
}
export const authOptions: NextAuthOptions = {
// Configure one or more authentication providers
adapter: PrismaAdapter(client),
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID as string,
clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,
}),
],
callbacks: {
session: ({ session, user }) => {
(session as UserSession).id = user.id;
return session;
},
redirect: ({ url, baseUrl }) => {
return baseUrl;
},
},
secret: process.env.NEXTAUTH_SECRET,
pages: {
signIn: "/enter",
},
};
export default NextAuth(authOptions);
middleware.ts
export { default } from "next-auth/middleware";
export const config = {
matcher: ["/mypage","/with", "/product/:path*"],
};
1条答案
按热度按时间z5btuh9x1#
我成功地设置了会话策略并将jwt添加到回调中。