create-next-pro-cli
Version:
Advanced Next.js project scaffolder with i18n, Tailwind, App Router and more.
27 lines (25 loc) • 867 B
text/typescript
import { getToken } from "next-auth/jwt";
import { sign } from "jsonwebtoken";
import { NextResponse, NextRequest } from "next/server";
import { redirect } from "@/lib/i18n/navigation";
export async function GET(req: NextRequest) {
const token = await getToken({ req, secret: process.env.NEXTAUTH_SECRET });
if (token) {
const appJwt = sign(
{ id: token.id, email: token.email, name: token.name },
process.env.APP_JWT_SECRET!,
{ expiresIn: "7d" }
);
const res = NextResponse.redirect(req.nextUrl.origin + "/");
res.cookies.set("access_token", appJwt, {
httpOnly: true,
secure: process.env.NODE_ENV === "production",
sameSite: "strict",
path: "/",
maxAge: 60 * 60 * 24 * 7,
});
return res;
}
// Si pas de token, redirige vers login
return redirect({ href: "/login", locale: "en" });
}