Zurnadürüm
Explore posts from serversTTCTheo'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
here is my protected route code:
And thats my validateSession function.
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)
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
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