2024-12-11 12:27:57 +00:00
|
|
|
import NextAuth from "next-auth";
|
|
|
|
import { JWT } from "next-auth/jwt";
|
2024-12-11 11:24:37 +00:00
|
|
|
import Gitea, { GiteaProfile } from "@/lib/providers/gitea";
|
|
|
|
|
|
|
|
declare module "next-auth" {
|
|
|
|
interface User extends GiteaProfile {}
|
2024-12-11 12:27:57 +00:00
|
|
|
}
|
2024-12-11 11:24:37 +00:00
|
|
|
|
2024-12-11 12:27:57 +00:00
|
|
|
declare module "next-auth/jwt" {
|
|
|
|
interface JWT {
|
|
|
|
language?: string;
|
2024-12-11 11:24:37 +00:00
|
|
|
}
|
|
|
|
}
|
2024-12-07 13:01:22 +00:00
|
|
|
|
|
|
|
export const { handlers, signIn, signOut, auth } = NextAuth({
|
|
|
|
providers: [
|
|
|
|
Gitea({
|
|
|
|
clientId: process.env.AUTH_GITEA_ID,
|
|
|
|
clientSecret: process.env.AUTH_GITEA_SECRET,
|
|
|
|
enterprise: {
|
|
|
|
baseUrl: process.env.AUTH_GITEA_URL,
|
|
|
|
},
|
|
|
|
}),
|
|
|
|
],
|
|
|
|
secret: process.env.AUTH_SECRET,
|
2024-12-11 11:24:37 +00:00
|
|
|
callbacks: {
|
|
|
|
jwt({ token, user }) {
|
|
|
|
if (user) {
|
|
|
|
token.language = user.language;
|
|
|
|
}
|
|
|
|
return token;
|
|
|
|
},
|
|
|
|
session({ session, token }) {
|
2024-12-11 12:27:57 +00:00
|
|
|
session.user.language = token.language;
|
2024-12-11 11:24:37 +00:00
|
|
|
return session;
|
|
|
|
},
|
|
|
|
},
|
2024-12-11 12:27:57 +00:00
|
|
|
debug: process.env.NODE_ENV === "development",
|
2024-12-07 13:01:22 +00:00
|
|
|
});
|