judge4c-old/src/auth.ts

38 lines
857 B
TypeScript
Raw Normal View History

import NextAuth, { type DefaultSession } from "next-auth";
import Gitea, { GiteaProfile } from "@/lib/providers/gitea";
declare module "next-auth" {
interface User extends GiteaProfile {}
interface Session {
user: {
language: string;
} & DefaultSession["user"];
}
}
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 as string;
return session;
},
},
});