Skip to content

feat: secure authentication flows#39

Merged
MaximilianAnzinger merged 56 commits into
mainfrom
feature/36-security-implement-secure-authentication-flows
Apr 9, 2026
Merged

feat: secure authentication flows#39
MaximilianAnzinger merged 56 commits into
mainfrom
feature/36-security-implement-secure-authentication-flows

Conversation

@vtotalova

Copy link
Copy Markdown
Contributor

Description

Implements user authentication using Keycloak with self-registration, email verification, and university email domain restriction. Users register with a university email, verify it via email, and are issued a JWT. The backend enforces domain allowlisting and syncs users by their Keycloak subject UUID — no personal data stored.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📝 Documentation update
  • 🎨 Style/formatting changes (no functional changes)
  • ♻️ Code refactoring (no functional changes)
  • ⚡ Performance improvements
  • 🔧 Configuration changes
  • 🧪 Test additions or modifications
  • 🚀 Deployment/DevOps changes

Related Issues

Changes Made

  • Client: Auth context with keycloak-js, protected routes, login page, domain error screen
  • Server: JWT resource server, /api/auth/me endpoint with domain allowlist check, user sync by sub UUID
  • Database: name and email columns made nullable; id supports 36-char UUID
  • Other: Keycloak realm configured for self-registration + email verification; Mailpit added as dev SMTP catcher

Testing

Test Cases

  • Existing functionality still works
  • New functionality works as expected
  • Edge cases handled appropriately

Manual Testing

  • Tested in development environment
  • Register with university email → verification email received in Mailpit → login succeeds
  • Register with non-university email → 403 returned → "Access denied" screen shown
  • Unauthenticated access to protected routes redirects to /login
  • Demo/admin users (memo.local) can still log in

markstockhausen and others added 30 commits February 3, 2026 02:22
…sable component to use it on main page and while onboarding
@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions

github-actions Bot commented Mar 4, 2026

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

markstockhausen
markstockhausen previously approved these changes Mar 4, 2026
@github-actions

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions github-actions Bot added the dependencies 📦 Dependency updates label Mar 23, 2026
@github-actions github-actions Bot removed the dependencies 📦 Dependency updates label Mar 27, 2026
@github-actions

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@MaximilianAnzinger MaximilianAnzinger left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please have a look at the CI checks.

@github-actions

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions

Copy link
Copy Markdown

🔍 Code Quality Report

📊 Code Statistics

🚨 Potential Issues

✅ No console statements found
⚠️ Found 'any' or 'unknown' types - consider using more specific types

@github-actions github-actions Bot added the dependencies 📦 Dependency updates label Mar 31, 2026
@markstockhausen
markstockhausen self-requested a review April 2, 2026 10:17
@MaximilianAnzinger
MaximilianAnzinger merged commit 294664b into main Apr 9, 2026
8 checks passed
@MaximilianAnzinger
MaximilianAnzinger deleted the feature/36-security-implement-secure-authentication-flows branch April 9, 2026 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change ⚠️ Breaking changes client-application 🎨 Client-side/UI changes configuration ⚙️ Configuration file changes dependencies 📦 Dependency updates enhancement New feature or request security 🔒 Security related server ⚙️ Server-side/API changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

security: implement secure authentication flows

4 participants