feat(auth): add additional sso providers
This commit is contained in:
parent
1d17f7329e
commit
0815440f72
2 changed files with 34 additions and 2 deletions
19
.env.example
19
.env.example
|
@ -6,4 +6,23 @@ AUTH_AUTHENTIK_ID=
|
||||||
AUTH_AUTHENTIK_SECRET=
|
AUTH_AUTHENTIK_SECRET=
|
||||||
AUTH_AUTHENTIK_ISSUER=
|
AUTH_AUTHENTIK_ISSUER=
|
||||||
|
|
||||||
|
AUTH_DISCORD_ID=
|
||||||
|
AUTH_DISCORD_SECRET=
|
||||||
|
|
||||||
|
AUTH_FACEBOOK_ID=
|
||||||
|
AUTH_FACEBOOK_SECRET=
|
||||||
|
|
||||||
|
AUTH_GITHUB_ID=
|
||||||
|
AUTH_GITHUB_SECRET=
|
||||||
|
|
||||||
|
AUTH_GITLAB_ID=
|
||||||
|
AUTH_GITLAB_SECRET=
|
||||||
|
|
||||||
|
AUTH_GOOGLE_ID=
|
||||||
|
AUTH_GOOGLE_SECRET=
|
||||||
|
|
||||||
|
AUTH_KEYCLOAK_ID=
|
||||||
|
AUTH_KEYCLOAK_SECRET=
|
||||||
|
AUTH_KEYCLOAK_ISSUER=
|
||||||
|
|
||||||
NEXT_PUBLIC_APP_URL=
|
NEXT_PUBLIC_APP_URL=
|
||||||
|
|
17
src/auth.ts
17
src/auth.ts
|
@ -2,8 +2,15 @@ import NextAuth, { CredentialsSignin } from 'next-auth';
|
||||||
|
|
||||||
import { Prisma } from '@/generated/prisma';
|
import { Prisma } from '@/generated/prisma';
|
||||||
import type { Provider } from 'next-auth/providers';
|
import type { Provider } from 'next-auth/providers';
|
||||||
|
|
||||||
import Credentials from 'next-auth/providers/credentials';
|
import Credentials from 'next-auth/providers/credentials';
|
||||||
import Authentik from 'next-auth/providers/authentik';
|
import AuthentikProvider from 'next-auth/providers/authentik';
|
||||||
|
import DiscordProvider from 'next-auth/providers/discord';
|
||||||
|
import FacebookProvider from 'next-auth/providers/facebook';
|
||||||
|
import GithubProvider from 'next-auth/providers/github';
|
||||||
|
import GitlabProvider from 'next-auth/providers/gitlab';
|
||||||
|
import GoogleProvider from 'next-auth/providers/google';
|
||||||
|
import KeycloakProvider from 'next-auth/providers/keycloak';
|
||||||
|
|
||||||
import { PrismaAdapter } from '@auth/prisma-adapter';
|
import { PrismaAdapter } from '@auth/prisma-adapter';
|
||||||
import { prisma } from '@/prisma';
|
import { prisma } from '@/prisma';
|
||||||
|
@ -88,7 +95,13 @@ const providers: Provider[] = [
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
process.env.AUTH_AUTHENTIK_ID && Authentik,
|
process.env.AUTH_AUTHENTIK_ID && AuthentikProvider,
|
||||||
|
process.env.AUTH_DISCORD_ID && DiscordProvider,
|
||||||
|
process.env.AUTH_FACEBOOK_ID && FacebookProvider,
|
||||||
|
process.env.AUTH_GITHUB_ID && GithubProvider,
|
||||||
|
process.env.AUTH_GITLAB_ID && GitlabProvider,
|
||||||
|
process.env.AUTH_GOOGLE_ID && GoogleProvider,
|
||||||
|
process.env.AUTH_KEYCLOAK_ID && KeycloakProvider,
|
||||||
].filter(Boolean) as Provider[];
|
].filter(Boolean) as Provider[];
|
||||||
|
|
||||||
export const providerMap = providers
|
export const providerMap = providers
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue