Die Demo-Bibliothek lesen
Die Demo ist eine statische Bibliothek, die mit dieser Seite ausgeliefert wird: nichts zu installieren, keine Anmeldung.
-
Den Handshake lesen
Jede Bibliothek sagt in einem Dokument, was sie ist, welche Funktionen sie bietet und wo ihre Grenzen liegen.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Seine Apps auflisten
Eine Seite Apps für eine Plattform: Jede trägt Größe, sha256 und Pfad ihrer Datei.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Herunterladen und prüfen
Das SHA-256 der Datei ist das, das die App angekündigt hat. Ein Client lehnt ab, was nicht passt.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
Mehr zum Ausprobieren, auch Bibliotheken, die einen Client aus der Bahn werfen sollen: Demo-Bibliothek
Mit einem eigenen Server sprechen
Ein Server mit Konten verlangt zuerst die Kopplung des Geräts. Diese Aufrufe verwenden eine erfundene Adresse.
-
Finden
In einem lokalen Netz entdeckt ein Client ihn per UDP-Datagramm; mit einer Adresse liest er den Handshake an einem bekannten Pfad.
curl -s https://shelf.example.org/.well-known/lantern -
Koppeln
Der Server antwortet mit einem Code, der auf einem anderen Gerät eingegeben wird, wo sich der Besitzer anmeldet und genehmigt.
curl -s -X POST https://shelf.example.org/api/lantern/v1/pairing \ -H 'Content-Type: application/json' \ -d '{"schema":1,"device":"My console","scopes":["library"]}' -
Aufrufen
Mit dem erhaltenen Token als Bearer; ein mit Schlüssel gekoppeltes Gerät signiert zusätzlich jede Anfrage.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
Der ganze Weg
Gehen Sie ihn Schritt für Schritt durch: Jeder Klick hebt einen Schritt hervor und blendet die übrigen aus.
- Gerät → Server: UDP 47115 {"lantern":"discover"}
- Server → Gerät: {"lantern":"server", uid, port, base}
- Nur ein Hinweis: Vertrauen kommt aus TLS und Kopplung
- Gerät → Server: GET /.well-known/lantern
- Server → Gerät: handshake: uid, versions, platforms, features, limits
- Kopplung (§ 5.2)
- Gerät → Server: POST /v1/pairing {device, scopes, key}
- Server → Gerät: code KQ4M-7TXD, verify_complete, poll, interval
- Zeigt den Code, einen QR-Code und den kurzen Fingerabdruck des Schlüssels
- Handy des Nutzers → Server: Öffnet den Link, meldet sich an, vergleicht den Fingerabdruck, genehmigt
- Gerät → Server: GET <poll> (every interval)
- Server → Gerät: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Pinnt den Schlüssel des Servers für diese uid (§ 5.3)
- Danach bei jedem Aufruf
- Gerät → Server: Authorization: Bearer et_… + request signature
- Server → Gerät: 200 · 401 · 403