Error:localhost redirected too many times
Whenever the user is authenticated and a web page is refreshed I keep getting this error "error:localhost redirected too many times try to clear cookies". Using codes below b
import { redirect } from 'next/navigation'
import { cookies } from 'next/headers'
import { verify,sign } from "jsonwebtoken";
import { COOKIE_NAME } from '../constants/cookie';
import prisma from "@/prisma/client";
export const revalidate = 0;
export default async function Protect({
children,
}: {
children: React.ReactNode
}){
const session = await getServerSession(authOptions)
// const user = await getUserAction()
// const cookieStore = cookies()
// const authorization = cookieStore.get('adminToken')
// console.log(authorization?.value)
// const user = JSON.parse(authorization!.value)
const cookieStore = cookies();
const token = cookieStore.get(COOKIE_NAME);
if (!token) {
redirect("/")
}
const { value } = token;
const secret = process.env.JWT_SECRET || "";
var decode = verify(value, secret) as { user: { id: string; email: string; name: string; image: string | null; role: string; hashedPassword: string }; iat: number; exp: number };
;
const useri = decode.user
const email = useri.email;
const user = await prisma.user.findFirst({
where:{
email:email,
ustate:"NON_BLOCKED"
},
select:{
id:true,
name:true,
role:true,
}
})
if (!user) {
redirect("/")
}
if(user.role == "USER"){
redirect("/home")
}
if(user.role == "ADMIN")
return(
<section>{children}</section>
)
}import { redirect } from 'next/navigation'
import { cookies } from 'next/headers'
import { verify,sign } from "jsonwebtoken";
import { COOKIE_NAME } from '../constants/cookie';
import prisma from "@/prisma/client";
export const revalidate = 0;
export default async function Protect({
children,
}: {
children: React.ReactNode
}){
const session = await getServerSession(authOptions)
// const user = await getUserAction()
// const cookieStore = cookies()
// const authorization = cookieStore.get('adminToken')
// console.log(authorization?.value)
// const user = JSON.parse(authorization!.value)
const cookieStore = cookies();
const token = cookieStore.get(COOKIE_NAME);
if (!token) {
redirect("/")
}
const { value } = token;
const secret = process.env.JWT_SECRET || "";
var decode = verify(value, secret) as { user: { id: string; email: string; name: string; image: string | null; role: string; hashedPassword: string }; iat: number; exp: number };
;
const useri = decode.user
const email = useri.email;
const user = await prisma.user.findFirst({
where:{
email:email,
ustate:"NON_BLOCKED"
},
select:{
id:true,
name:true,
role:true,
}
})
if (!user) {
redirect("/")
}
if(user.role == "USER"){
redirect("/home")
}
if(user.role == "ADMIN")
return(
<section>{children}</section>
)
}