Das Projekt- und Medienarchiv der HdM

Auth-Service

Das Projekt besteht aus einem SvelteKit-Frontend zur Nutzerverwaltung und einem Rust-basierten Authentifizierungsdienst, der Discord-OAuth2, Sitzungsspeicherung in Redis, Token-Verschlüsselung und persistente Speicherung in PostgreSQL implementiert.
Zum Projekt wurden keine Video-Dateien gefunden

Beschreibung

Das Projekt besteht aus zwei Hauptkomponenten, einem SvelteKit-basierten Frontend und einem Rust-basierten Authentifizierungsdienst.

Das Frontend stellt die Benutzeroberfläche und Benutzerverwaltung bereit und übernimmt die Weiterleitung an den Authentifizierungsdienst für die Anmeldung. Es enthält eine Login-Komponente, die den OAuth2-Prozess startet, indem sie den Benutzer zur Discord-Autorisierungsseite weiterleitet. Nach erfolgreicher Anmeldung verarbeitet das Frontend den Callback, ruft den Sitzungsstatus ab und zeigt Benutzerinformationen wie den Benutzernamen und den Avatar an.

Der Authentifizierungsdienst, der in Rust implementiert ist, verwaltet den gesamten OAuth2-Ablauf mit Discord. Er erzeugt eine PKCE-Challenge und CSRF-Tokens und speichert diese vorübergehend in Redis, um die Integrität der Sitzung zu gewährleisten. Wenn Discord den Callback zurückgibt, tauscht der Dienst den Autorisierungscode gegen Zugriffs- und Aktualisierungstoken aus. Mit dem Zugriffstoken ruft er das Discord-Benutzerprofil ab und speichert die Benutzerdaten in einer PostgreSQL-Datenbank, wobei jeder Datensatz einem Discord-Benutzer entspricht. Aktualisierungstoken werden vor der Speicherung verschlüsselt, um die Sicherheit zu erhöhen. Der Dienst lädt Konfigurationswerte wie Discord-Clientdaten, Datenbank- und Redis-URLs sowie Verschlüsselungsschlüssel aus Umgebungsvariablen. Er verwaltet einen gemeinsamen Zustand, der Datenbankverbindungen, Redis-Clients und Konfigurationen über verschiedene Routen hinweg verfügbar macht.

Das Frontend konzentriert sich auf die Benutzeroberfläche und Sitzungssteuerung, während das Backend die sichere Authentifizierung, Tokenverwaltung und Datenpersistenz übernimmt.




Projektart

Projektarbeit

Semester

WS2025/2026

Beteiligte Studiengänge

Medieninformatik (Bachelor, 7 Semester)

Team
Joel Damm, Joshua Jung
Betreuer
Fridtjof Toenniessen
Ansprechpartner

Joshua Jung

jj050@hdm-stuttgart.de