-
Passkeys
-
- Melde dich künftig per Fingerabdruck, Gesichtserkennung oder Geräte-PIN an. Das Passwort
- bleibt als Alternative bestehen.
-
-
- {loading ? (
-
Lädt…
- ) : passkeys.length === 0 ? (
-
Noch keine Passkeys registriert.
- ) : (
-
- {passkeys.map((pk) => (
- -
-
-
{pk.label}
-
- Erstellt {formatDate(pk.createdAt)} · Zuletzt {formatDate(pk.lastUsedAt)}
-
-
-
-
- ))}
-
- )}
-
-
-
-
- setLabel(e.target.value)}
- placeholder="z. B. iPhone"
- maxLength={80}
- className="passkeys-input"
- />
-
-
-
-
- {error &&
{error}
}
-
- );
-}
diff --git a/compose.yml b/compose.yml
index 4a74142..d65b7f4 100644
--- a/compose.yml
+++ b/compose.yml
@@ -10,14 +10,6 @@ services:
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- DB_NAME=${DB_NAME}
- - AUTH_USERS=${AUTH_USERS}
- - AUTH_SECRET=${AUTH_SECRET}
- # Passkeys (WebAuthn): Host bzw. volle URL der Anwendung.
- # Eigene Variablennamen, weil sich mehrere Apps im Stack eine .env teilen
- # und RP_ID/RP_ORIGIN dort bereits von werte-next belegt sind.
- - RP_ID=${TABLETTEN_RP_ID:-tabletten.fuerst-stuttgart.de}
- - RP_ORIGIN=${TABLETTEN_RP_ORIGIN:-https://tabletten.fuerst-stuttgart.de}
- - RP_NAME=${TABLETTEN_RP_NAME:-Tabletten-Check}
labels:
- traefik.enable=true
- traefik.http.routers.tabletten.entrypoints=http
diff --git a/docker-compose.yml b/docker-compose.yml
index 0ef6dd8..dbc8a92 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -40,11 +40,5 @@ services:
# App
VORLAUF: ${VORLAUF:-14}
CHECK_SECRET: ${CHECK_SECRET}
- AUTH_USERS: ${AUTH_USERS}
- AUTH_SECRET: ${AUTH_SECRET}
- # Passkeys (WebAuthn) — braucht HTTPS oder localhost
- RP_ID: ${TABLETTEN_RP_ID:-localhost}
- RP_ORIGIN: ${TABLETTEN_RP_ORIGIN:-http://localhost:3000}
- RP_NAME: ${TABLETTEN_RP_NAME:-Tabletten-Check}
env_file:
- .env.local
diff --git a/lib/auth.ts b/lib/auth.ts
deleted file mode 100644
index 59257be..0000000
--- a/lib/auth.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import bcrypt from 'bcryptjs';
-
-export interface User {
- username: string;
- password: string;
-}
-
-export function getUsers(): User[] {
- const usersString = process.env.AUTH_USERS || '';
- if (!usersString) {
- console.warn('AUTH_USERS nicht in .env konfiguriert');
- return [];
- }
- return usersString
- .split(',')
- .map((userPair) => {
- const [username, password] = userPair.trim().split(':');
- return { username: username?.trim(), password: password?.trim() };
- })
- .filter((user) => user.username && user.password);
-}
-
-export async function verifyCredentials(username: string, password: string): Promise