Preskoči na vsebino
Dokumentacija · Televizorji in orodja ukazne vrstice

Televizorji, konzole in orodja ukazne vrstice

Televizor težko prikaže stran za prijavo, orodje ukazne vrstice pa ne bi smelo zahtevati gesla. S potekom za naprave naprava prikaže kratko kodo, oseba pa jo vnese v Lobby svojega okolja v telefonu ali računalniku, kjer je že prijavljena.

Registrirajte aplikacijo

V Usher Console odprite okolje, nato Aplikacije → Nova aplikacija → Televizor ali ukazna vrstica. Aplikacija dobi ID odjemalca in nobene skrivnosti: naprava je ne more varno hraniti.

Potek

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": "…" }
  • Sprašujte vljudno. Med poizvedbami počakajte interval sekund. Na hitrejše poizvedovanje je odgovor slow_down.
  • Ustavite se, ko vam rečejo. access_denied pomeni, da je oseba zavrnila; expired_token pomeni, da je minilo deset minut. Zahtevajte novo kodo.
  • Prikažite tudi naslov. Ne more vsak skenirati kode QR: prikažite verification_uri in kodo, razmaknjeno kot 6L95-PBQQ.

Na /device Lobby osebi pokaže, katera aplikacija sprašuje in za kaj. Pove ji, naj nadaljuje samo, če je postopek začela sama in njena naprava prikazuje isto kodo.

Vežite žetone na napravo (DPoP)

Žeton, kopiran z naprave, je še vedno žeton. Z DPoP (RFC 9449) naprava hrani zasebni ključ in z vsako zahtevo pošlje svež podpisan dokaz. Žeton, vezan na ta ključ, je brez njega neuporaben.

  • Zahtevajte vezane žetone: z zahtevami za žetone pošljite glavo DPoP in Usher tisto, kar izda, veže na vaš ključ (token_type je DPoP).
  • Obvezno jih zahtevajte: ko ustvarite aplikacijo, vklopite Zahtevaj DPoP. Usher ji nato ne izda nobenega žetona brez dokaza.
  • Uporabljajte jih z Authorization: DPoP <token> in dokazom za to zahtevo.
  • Knjižnice: večina knjižnic OAuth s podporo za DPoP vse to naredi namesto vas (na primer možnost DPoP v openid-client).