diff --git a/src/env.mjs b/src/env.mjs index 07e2560..7fe531f 100644 --- a/src/env.mjs +++ b/src/env.mjs @@ -35,6 +35,9 @@ const server = z.object({ POSTHOG_PROXY_PATH: z.string().nullish(), UPSTASH_REDIS_REST_URL: z.string().nullish(), UPSTASH_REDIS_REST_TOKEN: z.string().nullish(), + AUTHENTIK_ID: z.string(), + AUTHENTIK_SECRET: z.string(), + AUTHENTIK_ISSUER: z.string().url(), }); /** @@ -84,6 +87,9 @@ const processEnv = { NEXT_PUBLIC_POSTHOG_PROXY_HOST: process.env.NEXT_PUBLIC_POSTHOG_PROXY_HOST, UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN, + AUTHENTIK_ID: process.env.AUTHENTIK_ID, + AUTHENTIK_SECRET: process.env.AUTHENTIK_SECRET, + AUTHENTIK_ISSUER: process.env.AUTHENTIK_ISSUER, }; // Don't touch the part below diff --git a/src/server/auth.ts b/src/server/auth.ts index bd67ae0..c3de9be 100644 --- a/src/server/auth.ts +++ b/src/server/auth.ts @@ -10,6 +10,7 @@ import { PrismaAdapter } from "@next-auth/prisma-adapter"; import { env } from "~/env.mjs"; import { prisma } from "~/server/db"; import { PostHog } from "posthog-node"; +import AuthentikProvider from "next-auth/providers/authentik"; /** * Module augmentation for `next-auth` types. Allows us to add custom properties to the `session` @@ -62,6 +63,11 @@ export const authOptions: NextAuthOptions = { clientId: env.GITHUB_ID, clientSecret: env.GITHUB_SECRET, }), + AuthentikProvider({ + clientId: process.env.AUTHENTIK_ID, + clientSecret: process.env.AUTHENTIK_SECRET, + issuer: process.env.AUTHENTIK_ISSUER, + }), /** * ...add more providers here. *