judge4c-old/src/auth.ts

40 lines
894 B
TypeScript
Raw Normal View History

import NextAuth from "next-auth";
import { JWT } from "next-auth/jwt";
import Gitea, { GiteaProfile } from "@/lib/providers/gitea";
declare module "next-auth" {
interface User extends GiteaProfile {}
}
declare module "next-auth/jwt" {
interface JWT {
language?: string;
}
}
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,
callbacks: {
jwt({ token, user }) {
if (user) {
token.language = user.language;
}
return token;
},
session({ session, token }) {
session.user.language = token.language;
return session;
},
},
debug: process.env.NODE_ENV === "development",
});