diff --git a/public/locales/en/authentication/login.json b/public/locales/en/authentication/login.json
index 33fcdd9d7..dbc8be632 100644
--- a/public/locales/en/authentication/login.json
+++ b/public/locales/en/authentication/login.json
@@ -14,7 +14,11 @@
"buttons": {
"submit": "Sign in"
},
- "afterLoginRedirection": "After login, you'll be redirected to {{url}}"
+ "afterLoginRedirection": "After login, you'll be redirected to {{url}}",
+ "providersEmpty": {
+ "title": "Auth Provider Error",
+ "message": "The provider(s) are unset, please check your logs for more information."
+ }
},
"alert": "Your credentials are incorrect or this account doesn't exist. Please try again."
}
\ No newline at end of file
diff --git a/src/env.js b/src/env.js
index d4354b468..203a48be9 100644
--- a/src/env.js
+++ b/src/env.js
@@ -19,6 +19,7 @@ const portSchema = z
.optional();
const envSchema = z.enum(['development', 'test', 'production']);
+const validAuthProviders = ['credentials', 'ldap', 'oidc'];
const authProviders = process.env.AUTH_PROVIDER?.replaceAll(' ', '').split(',') || ['credentials'];
const env = createEnv({
@@ -45,8 +46,22 @@ const env = createEnv({
// Authentication
AUTH_PROVIDER: z
.string()
+ .min(1)
.default('credentials')
- .transform((providers) => providers.replaceAll(' ', '').split(',')),
+ .transform((providers) =>
+ providers
+ .replaceAll(' ', '')
+ .toLowerCase()
+ .split(',')
+ .filter((provider) => {
+ if (validAuthProviders.includes(provider)) return provider;
+ else if (!provider)
+ console.log(
+ `One or more of the entries for AUTH_PROVIDER could not be parsed and/or returned null.`
+ );
+ else console.log(`The value entered for AUTH_PROVIDER "${provider}" is incorrect.`);
+ })
+ ),
// LDAP
...(authProviders.includes('ldap')
? {
diff --git a/src/pages/auth/login.tsx b/src/pages/auth/login.tsx
index 482e1db6e..19b8442f2 100644
--- a/src/pages/auth/login.tsx
+++ b/src/pages/auth/login.tsx
@@ -124,9 +124,19 @@ export default function LoginPage({
{t('title')}
-
- {t('text')}
-
+ {(providers.length < 1 && (
+ }
+ title={t('form.providersEmpty.title')}
+ mt={5}
+ >
+ {t('form.providersEmpty.message')}
+
+ )) || (
+
+ {t('text')}
+
+ )}
{isError && (
} color="red">