1.9 KiB
1.9 KiB
Authentifizierung
Warum Authentifizierung?
Offline‑Accounts (Accounts, die nur aus dem Spielernamen generiert werden, ohne einen Auth‑Server zu kontaktieren) können beliebige Spitznamen nutzen. Ohne zusätzliche Plugins können sich Spieler als andere ausgeben – auch als Operatoren.
Offline‑Server
Standardmäßig ist online_mode in der Konfiguration aktiviert. Das schaltet Authentifizierung ein und verhindert Offline‑Accounts. Um Offline‑Accounts zu erlauben, setze online_mode in pumpkin.toml auf false.
Wie Yggdrasil Auth funktioniert
- Der Client erhält Token und UUID vom Launcher.
- Beim Laden ruft der Client mit dem Token Daten wie Signier‑Schlüssel und gesperrte Server vom Auth‑Server ab.
- Beim Join sendet der Client eine Join‑Anfrage an den Auth‑Server. Mojangs Server können sie ablehnen, falls der Account gebannt ist.
- Der Client sendet Identifikationsdaten im Paket an den Server.
- Der Server stellt basierend darauf eine
hasJoined‑Anfrage. Bei Erfolg erhält er Profildaten (Skin etc.).
Eigener Authentifizierungsserver
Pumpkin unterstützt eigene Auth‑Server. Die Auth‑URL kann in pumpkin.toml ersetzt werden.
Pumpkin Auth Ablauf
- GET Request: Pumpkin sendet einen GET Request an die konfigurierte URL.
- Status 200: Erfolgreiche Auth gibt Statuscode 200 zurück.
- JSON Game Profile: Pumpkin parst das zurückgegebene JSON.
Game Profile
struct GameProfile {
id: UUID,
name: String,
properties: Vec<Property>,
profile_actions: Option<Vec<ProfileAction>>, // Optional, falls Aktionen vorliegen
}
Property
struct Property {
name: String,
value: String, // Base64 kodiert
signature: Option<String>, // Optional, Base64 kodiert
}
Profile Action
enum ProfileAction {
FORCED_NAME_CHANGE,
USING_BANNED_SKIN,
}