|
|
Zur Authentifizierung werden zwei unterschiedliche JWT-Tokens verwendetet. Der User und der Session Token, welche im folgenden genauer beschrieben werden.
|
|
|
|
|
|
|
|
|
## User-Token
|
|
|
|
|
|
Der User-Token wird von der Login-API-Route zurückgegeben und gibt Zugriff auf die zum User gehörigen Ressourcen wie z.B. Quizze und Kurse.
|
|
|
|
|
|
Standardmäßig ist dieser Token 7 Tage gültig, welches aber auch durch [Konfiguration](/Deployment/Konfiguration) geändert werden.
|
|
|
|
|
|
Ein User-Token kann auch schon vor Ablauf seiner Gültigkeit durch das Verwenden der Logout API-Route unbrauchbar gemacht werden.
|
|
|
|
|
|
### Token Inhalt
|
|
|
|
|
|
In einem User-Token sind folgende Informationen kodiert:
|
|
|
|
|
|
```javascript
|
|
|
{
|
|
|
"jti": "941252908249558148", //Zufällige Token-ID
|
|
|
"iss": "feedbackAppBackend/auth", //Token-Art
|
|
|
"iat": 1597929827, //Erstellt am (Unix-Time-Stamp)
|
|
|
"exp": 1598534627, //Läuft ab am (Unix-Time-Stamp)
|
|
|
"sub": "...", //THM-Kennung
|
|
|
"firstname": "...", //Vorname
|
|
|
"lastname": "..." //Nachname
|
|
|
"docent": false, //Dozent
|
|
|
"internalUserID": 1, //Interne-UserID
|
|
|
"feedbackSystemToken": "...", //Token vom Feedbacksystem
|
|
|
}
|
|
|
```
|
|
|
|
|
|
## Session-Token
|
|
|
|
|
|
Der Session-Token wird durch das Beitreten einer Sitzung erhalten. Er erlaubt den Zugriff auf zur Sitzung gehörende Ressourcen und das Beantworten von Fragen. Seine Unabhängigkeit vom User-Token stellt die Anonymität des User bei Anonymen-Quizzen oder Umfragen sicher und erlaubt es auch unangemeldeten Nutzer*innen an Quizzen teilzunehmen.
|
|
|
|
|
|
Ein Session-Token ist einen Tag lang gültig, welches auch wieder [konfiguriert](/Deployment/Konfiguration) werden kann.
|
|
|
|
|
|
### Token-Inhalt
|
|
|
|
|
|
In dem Session-Token sind folgende Informationen kodiert:
|
|
|
|
|
|
```javascript
|
|
|
{
|
|
|
"sub": "anonym-29112464", //Anonym Identity oder THM-Kennung
|
|
|
"iss": "feedbackAppBackend/session", //Token-Art
|
|
|
"sessionID": 35555644, // Sitzungs ID
|
|
|
"quizID": 87233244, // ID des dazugehörigen Quizzes
|
|
|
"iat": 1597931126, //Erstellt am (Unix-Time-Stamp)
|
|
|
"exp": 1598017526, //Läuft ab am (Unix-Time-Stamp)
|
|
|
"identifierConfirmed": false // Anonyme Sitzung oder authentifizierte Sitzung
|
|
|
}
|
|
|
```
|
|
|
|