Auth-Service
(Raum: m003)
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.
Team
Joel Damm, Joshua Jung
Betreuer*Innen
Fridtjof Toenniessen
Anima Tua
„Anima Tua“ ist ein VR Dungeon Crawler, in dem Spieler ihren eigenen Geist erforschen. Dabei kämpfen sie gegen Monster und lösen Rätsel, um ...
Pflege-Game - Pflegeberuf spielerisch erleben
Pflege ist einer der wichtigsten Berufe der Zukunft - aber leider nicht ansprechend und
nicht leicht zugänglich ist – insbesondere beim ...
Iremia Lambda
Wir, das Team Lambda, entwickeln die bestehende App Iremia (WS 24/25) weiter und fokussieren uns dabei auf den Bereich Skills & ...