Zurnadürüm
Zurnadürüm
Explore posts from servers
TTCTheo's Typesafe Cult
Created by Zurnadürüm on 4/12/2024 in #questions
Next redirect() gives date.getTime() error
I use lucia auth with nextjs. And all things are okay until i add redirect('/blog/login') fuction into my code. then even if i had session cookie in my browser i get error about
TypeError: date.getTime is not a function. (In 'date.getTime()', 'date.getTime' is undefined)
at isWithinExpirationDate (:40:37)
at <anonymous> (:76:74)
at processTicksAndRejections (:12:39)
⨯ TypeError: date.getTime is not a function. (In 'date.getTime()', 'date.getTime' is undefined)
at isWithinExpirationDate (:40:37)
at <anonymous> (:76:74)
at processTicksAndRejections (:12:39)
TypeError: date.getTime is not a function. (In 'date.getTime()', 'date.getTime' is undefined)
at isWithinExpirationDate (:40:37)
at <anonymous> (:76:74)
at processTicksAndRejections (:12:39)
⨯ TypeError: date.getTime is not a function. (In 'date.getTime()', 'date.getTime' is undefined)
at isWithinExpirationDate (:40:37)
at <anonymous> (:76:74)
at processTicksAndRejections (:12:39)
here is my protected route code:
import { validateSession } from "@/auth"
import { redirect } from "next/navigation"

const Create = async () => {
const {user} = await validateSession()
if (!user) {
return redirect("/blog/login")
}

return (
<main className="min-h-screen relative z-20">Create</main>
)
}

export default Create
import { validateSession } from "@/auth"
import { redirect } from "next/navigation"

const Create = async () => {
const {user} = await validateSession()
if (!user) {
return redirect("/blog/login")
}

return (
<main className="min-h-screen relative z-20">Create</main>
)
}

export default Create
And thats my validateSession function.
export const validateSession = cache(async () => {
const sessionId = cookies().get(lucia.sessionCookieName)?.value ?? null;
if (!sessionId) {
return {
user: null,
session: null
}
}



const { user, session } = await lucia.validateSession(sessionId);
try {
if (session && session.fresh) {
const sessionCookie = lucia.createSessionCookie(session.id);
cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes);
}
if (!session) {
const sessionCookie = lucia.createBlankSessionCookie();
cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes);
}
} catch {
// Next.js throws error when attempting to set cookies when rendering page
}
return {user, session};
});
export const validateSession = cache(async () => {
const sessionId = cookies().get(lucia.sessionCookieName)?.value ?? null;
if (!sessionId) {
return {
user: null,
session: null
}
}



const { user, session } = await lucia.validateSession(sessionId);
try {
if (session && session.fresh) {
const sessionCookie = lucia.createSessionCookie(session.id);
cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes);
}
if (!session) {
const sessionCookie = lucia.createBlankSessionCookie();
cookies().set(sessionCookie.name, sessionCookie.value, sessionCookie.attributes);
}
} catch {
// Next.js throws error when attempting to set cookies when rendering page
}
return {user, session};
});
1 replies