Preskoči na sadržaj
Dokumentacija · Televizori i alati naredbenog retka

Televizori, konzole i alati naredbenog retka

Televizor teško može prikazati stranicu za prijavu, a alat naredbenog retka ne bi smio tražiti lozinku. Uz tok za uređaje uređaj prikazuje kratak kôd, a osoba ga upisuje u Lobby svojeg okruženja na telefonu ili računalu, gdje je već prijavljena.

Registrirajte aplikaciju

U sučelju Usher Console otvorite okruženje, a zatim Aplikacije → Nova aplikacija → TV ili naredbeni redak. Aplikacija dobiva ID klijenta bez tajne: uređaj je ne može čuvati.

Tok

Terminal
# 1. the device asks for a code
curl -s -X POST https://acme.usherid.com/api/auth/device/code \
  -d client_id=YOUR_CLIENT_ID -d scope='openid email offline_access'
# → { "device_code": "…", "user_code": "6L95PBQQ",
#     "verification_uri": "https://acme.usherid.com/device",
#     "verification_uri_complete": "https://acme.usherid.com/device?user_code=6L95PBQQ",
#     "expires_in": 600, "interval": 5 }

# 2. it shows the code (and a QR code of verification_uri_complete), then polls
curl -s -X POST https://acme.usherid.com/api/auth/oauth2/token \
  -d grant_type=urn:ietf:params:oauth:grant-type:device_code \
  -d device_code=… -d client_id=YOUR_CLIENT_ID
# → { "error": "authorization_pending" } until the person allows it,
#   then { "access_token": "…", "id_token": "…", "refresh_token": "…" }
  • Pitajte umjereno. Između upita čekajte interval sekundi. Na češće upite odgovor je slow_down.
  • Stanite kad vam se kaže. access_denied znači da je osoba odbila; expired_token znači da je prošlo deset minuta. Zatražite novi kôd.
  • Prikažite i adresu. Ne može svatko skenirati QR kôd: prikažite verification_uri i kôd, razmaknut kao 6L95-PBQQ.

Na adresi /device Lobby osobi pokazuje koja aplikacija traži pristup i za što. Kaže joj da nastavi samo ako je sama pokrenula postupak i ako njezin uređaj prikazuje isti kôd.

Vežite tokene uz uređaj (DPoP)

Token kopiran s uređaja i dalje je token. Uz DPoP (RFC 9449) uređaj čuva privatni ključ i uz svaki zahtjev šalje novi potpisani dokaz. Token vezan uz taj ključ bez njega je beskoristan.

  • Zatražite vezane tokene: uz zahtjeve za token šaljite zaglavlje DPoP, a Usher ono što izda veže uz vaš ključ (token_type je DPoP).
  • Zahtijevajte ih: uključite Zahtijevaj DPoP kad izrađujete aplikaciju. Usher joj tada ne izdaje nijedan token bez dokaza.
  • Koristite ih uz Authorization: DPoP <token>, zajedno s dokazom za taj zahtjev.
  • Biblioteke: većina OAuth biblioteka s podrškom za DPoP sve to radi umjesto vas (na primjer, opcija DPoP u biblioteci openid-client).