mirror of
https://github.com/ajnart/homarr.git
synced 2026-02-27 17:00:54 +01:00
* chore: add initial db migration * test: add unit tests for packages auth, common, widgets * fix: deep source issues * fix: format issues * wip: add unit tests for api routers * fix: deep source issues * test: add missing unit tests for integration router * wip: board tests * test: add unit tests for board router * fix: remove unnecessary null assertions * fix: deepsource issues * fix: formatting * fix: pnpm lock * fix: lint and typecheck issues * chore: address pull request feedback * fix: non-null assertions * fix: lockfile broken
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { cookies } from "next/headers";
|
|
import { DrizzleAdapter } from "@auth/drizzle-adapter";
|
|
import NextAuth from "next-auth";
|
|
import Credentials from "next-auth/providers/credentials";
|
|
|
|
import { db } from "@homarr/db";
|
|
|
|
import { createSignInCallback, sessionCallback } from "./callbacks";
|
|
import { createCredentialsConfiguration } from "./providers/credentials";
|
|
import { EmptyNextAuthProvider } from "./providers/empty";
|
|
import { sessionMaxAgeInSeconds, sessionTokenCookieName } from "./session";
|
|
|
|
const adapter = DrizzleAdapter(db);
|
|
|
|
export const createConfiguration = (isCredentialsRequest: boolean) =>
|
|
NextAuth({
|
|
adapter,
|
|
providers: [
|
|
Credentials(createCredentialsConfiguration(db)),
|
|
EmptyNextAuthProvider(),
|
|
],
|
|
callbacks: {
|
|
session: sessionCallback,
|
|
signIn: createSignInCallback(adapter, isCredentialsRequest),
|
|
},
|
|
session: {
|
|
strategy: "database",
|
|
maxAge: sessionMaxAgeInSeconds,
|
|
},
|
|
pages: {
|
|
signIn: "/auth/login",
|
|
error: "/auth/login",
|
|
},
|
|
jwt: {
|
|
encode() {
|
|
const cookie = cookies().get(sessionTokenCookieName)?.value;
|
|
return cookie ?? "";
|
|
},
|
|
|
|
decode() {
|
|
return null;
|
|
},
|
|
},
|
|
});
|