Прочитать демо-библиотеку
Демо — статическая библиотека, которую отдаёт этот сайт: ничего устанавливать и входить никуда не нужно.
-
Прочитать handshake
Каждая библиотека в одном документе сообщает, что она такое, какие возможности предлагает и какие у неё лимиты.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Показать его приложения
Страница приложений для одной платформы: у каждого есть размер, sha256 и путь к файлу.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Скачать и проверить
SHA-256 файла совпадает с заявленным приложением. Клиент отвергает то, что не совпадает.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
Ещё для проб, включая библиотеки-ловушки для клиентов: Демонстрационная библиотека
Работа с вашим сервером
Сервер с аккаунтами сначала просит сопрячь устройство. В этих вызовах вымышленный адрес.
-
Найти
В локальной сети клиент находит его UDP-датаграммой; по адресу он читает handshake по известному пути.
curl -s https://shelf.example.org/.well-known/lantern -
Сопряжение
Сервер отвечает кодом, который вводят на другом устройстве, где владелец входит и подтверждает.
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"]}' -
Вызвать
С полученным токеном (bearer); устройство, сопряжённое с ключом, дополнительно подписывает каждый запрос.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
Весь путь
Пройдите по шагам: каждое нажатие подсвечивает один шаг и приглушает остальные.
- Устройство → Сервер: UDP 47115 {"lantern":"discover"}
- Сервер → Устройство: {"lantern":"server", uid, port, base}
- Лишь подсказка: доверие даёт TLS и сопряжение
- Устройство → Сервер: GET /.well-known/lantern
- Сервер → Устройство: handshake: uid, versions, platforms, features, limits
- Сопряжение (§ 5.2)
- Устройство → Сервер: POST /v1/pairing {device, scopes, key}
- Сервер → Устройство: code KQ4M-7TXD, verify_complete, poll, interval
- Показывает код, QR-код и короткий отпечаток ключа
- Телефон пользователя → Сервер: Открывает ссылку, входит, сверяет отпечаток и подтверждает
- Устройство → Сервер: GET <poll> (every interval)
- Сервер → Устройство: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Закрепляет ключ сервера за этим uid (§ 5.3)
- Затем при каждом вызове
- Устройство → Сервер: Authorization: Bearer et_… + request signature
- Сервер → Устройство: 200 · 401 · 403