Implement authentication phase with Cidaas OAuth2 integration

- Add authentication middleware to protect routes
- Create API endpoints for login, logout, registration, and user info
- Develop UI components for login and registration forms
- Integrate VeeValidate for form validation
- Update environment configuration for Cidaas settings
- Add i18n support for English and German languages
- Enhance Tailwind CSS for improved styling of auth components
- Document authentication flow and testing procedures
This commit is contained in:
Bastian Masanek
2025-10-31 11:44:48 +01:00
parent 749d5401c6
commit f8572c3386
57 changed files with 3357 additions and 132 deletions

49
i18n/locales/de-DE.json Normal file
View File

@@ -0,0 +1,49 @@
{
"welcome": "Willkommen bei experimenta",
"app": {
"title": "my.experimenta.science"
},
"auth": {
"welcome": "Willkommen",
"subtitle": "Melden Sie sich an oder erstellen Sie ein Konto",
"login": "Anmelden",
"register": "Registrieren",
"loginTitle": "Anmelden",
"loginDescription": "Melden Sie sich mit Ihrer E-Mail-Adresse an",
"loginButton": "Anmelden",
"loggingIn": "Wird angemeldet...",
"loginInfo": "Sie werden zur sicheren Anmeldeseite weitergeleitet",
"loginError": "Anmeldung fehlgeschlagen. Bitte versuchen Sie es erneut.",
"registerTitle": "Konto erstellen",
"registerDescription": "Erstellen Sie ein neues experimenta-Konto",
"registerButton": "Konto erstellen",
"registering": "Wird registriert...",
"registrationSuccess": "Registrierung erfolgreich!",
"registrationSuccessMessage": "Bitte bestätigen Sie Ihre E-Mail-Adresse über den Link, den wir Ihnen gesendet haben.",
"registrationError": "Registrierung fehlgeschlagen. Bitte versuchen Sie es erneut.",
"emailAlreadyRegistered": "Diese E-Mail-Adresse ist bereits registriert.",
"error": "Fehler",
"email": "E-Mail-Adresse",
"emailPlaceholder": "ihre.email{'@'}beispiel.de",
"password": "Passwort",
"passwordPlaceholder": "Mindestens 8 Zeichen",
"passwordRequirements": "Mindestens 8 Zeichen, Groß-/Kleinbuchstaben und eine Zahl",
"firstName": "Vorname",
"firstNamePlaceholder": "Max",
"lastName": "Nachname",
"lastNamePlaceholder": "Mustermann",
"termsAgreement": "Mit der Registrierung stimmen Sie unserer",
"privacyPolicy": "Datenschutzerklärung",
"and": "und den",
"termsOfService": "Nutzungsbedingungen",
"validation": {
"invalidEmail": "Bitte geben Sie eine gültige E-Mail-Adresse ein",
"passwordMinLength": "Das Passwort muss mindestens 8 Zeichen lang sein",
"passwordUppercase": "Das Passwort muss mindestens einen Großbuchstaben enthalten",
"passwordLowercase": "Das Passwort muss mindestens einen Kleinbuchstaben enthalten",
"passwordNumber": "Das Passwort muss mindestens eine Zahl enthalten",
"firstNameMinLength": "Der Vorname muss mindestens 2 Zeichen lang sein",
"lastNameMinLength": "Der Nachname muss mindestens 2 Zeichen lang sein"
}
}
}

49
i18n/locales/en-US.json Normal file
View File

@@ -0,0 +1,49 @@
{
"welcome": "Welcome to experimenta",
"app": {
"title": "my.experimenta.science"
},
"auth": {
"welcome": "Welcome",
"subtitle": "Sign in or create an account",
"login": "Sign In",
"register": "Sign Up",
"loginTitle": "Sign In",
"loginDescription": "Sign in with your email address",
"loginButton": "Sign In",
"loggingIn": "Signing in...",
"loginInfo": "You will be redirected to our secure login page",
"loginError": "Login failed. Please try again.",
"registerTitle": "Create Account",
"registerDescription": "Create a new experimenta account",
"registerButton": "Create Account",
"registering": "Creating account...",
"registrationSuccess": "Registration successful!",
"registrationSuccessMessage": "Please verify your email address using the link we sent you.",
"registrationError": "Registration failed. Please try again.",
"emailAlreadyRegistered": "This email address is already registered.",
"error": "Error",
"email": "Email Address",
"emailPlaceholder": "your.email{'@'}example.com",
"password": "Password",
"passwordPlaceholder": "At least 8 characters",
"passwordRequirements": "At least 8 characters, upper/lowercase letters and a number",
"firstName": "First Name",
"firstNamePlaceholder": "John",
"lastName": "Last Name",
"lastNamePlaceholder": "Doe",
"termsAgreement": "By registering, you agree to our",
"privacyPolicy": "Privacy Policy",
"and": "and",
"termsOfService": "Terms of Service",
"validation": {
"invalidEmail": "Please enter a valid email address",
"passwordMinLength": "Password must be at least 8 characters",
"passwordUppercase": "Password must contain at least one uppercase letter",
"passwordLowercase": "Password must contain at least one lowercase letter",
"passwordNumber": "Password must contain at least one number",
"firstNameMinLength": "First name must be at least 2 characters",
"lastNameMinLength": "Last name must be at least 2 characters"
}
}
}