I have an auth error with api route s. - NextAuth
Unanswered
Bolognese posted this in #help-forum
BologneseOP
My auth.ts (authOptions);
Error is basicly axios returns me 401 error which it should when i am not logged in, but the problem is that i logged in.
import { NextAuthOptions, getServerSession } from "next-auth";
import Auth0Provider from "next-auth/providers/auth0";
import { db } from "./db";
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import { nanoid } from "nanoid";
export const authOptions: NextAuthOptions = {
adapter: PrismaAdapter(db),
secret: process.env.NEXTAUTH_SECRET,
session: {
strategy: "jwt",
},
pages: {
signIn: "/giris",
},
providers: [
Auth0Provider({
clientId: process.env.AUTH0_CLIENT_ID!,
clientSecret: process.env.AUTH0_CLIENT_SECRET!,
issuer: process.env.AUTH0_ISSUER,
}),
],
callbacks: {
async session({ token, session }) {
if (token) {
session.user.id = token.id;
session.user.name = token.name;
session.user.email = token.email;
session.user.image = token.picture;
session.user.username = token.username;
}
return session;
},
async jwt({ token, user }) {
const dbUser = await db.user.findFirst({
where: {
email: token.email,
},
});
if (!dbUser) {
token.id = user!.id;
return token;
}
if (!dbUser.username) {
await db.user.update({
where: {
id: dbUser.id,
},
data: {
username: nanoid(10),
},
});
}
return {
id: dbUser.id,
name: dbUser.name,
email: dbUser.email,
picture: dbUser.image,
username: dbUser.username,
};
},
redirect() {
return "/";
},
},
};
export const getAuthSession = () => getServerSession(authOptions);Error is basicly axios returns me 401 error which it should when i am not logged in, but the problem is that i logged in.
1 Reply
BologneseOP
API Route;
the page that calls get request;
import { getAuthSession } from "@/lib/auth";
import { db } from "@/lib/db";
import { NextRequest, NextResponse } from "next/server";
export async function GET() {
const session = await getAuthSession();
if (!session?.user) {
return new Response("Unauthorized", { status: 401 });
}
try {
const cezalar = await db.cezalar.findMany();
return NextResponse.json(cezalar);
} catch (error) {
return new Response(
"Veriler çekilemedi lütfen bir süre sonra tekrar deneyiniz.",
{
status: 500,
}
);
}
}the page that calls get request;
import axios from "axios";
import { Ceza, columns } from "./columns";
import { DataTable } from "./data-table";
async function getData(): Promise<Ceza[]> {
const response = await axios.get("http://localhost:3000/api/ceza/list");
try {
return response.data;
} catch (error) {
console.error("Error parsing JSON response:", error);
throw error;
}
}
export default async function Anasayfa() {
const data = await getData();
return (
<div className="container mx-auto py-10">
<DataTable columns={columns} data={data} />
</div>
);
}