Langkau ke kandungan
Dokumentasi · TV dan alat baris perintah

TV, konsol dan alat baris perintah

TV tidak mudah memaparkan halaman daftar masuk, dan alat baris perintah tidak sepatutnya meminta kata laluan. Dengan aliran peranti, peranti itu menunjukkan kod pendek, dan orang itu menaipnya ke dalam Lobby persekitaran anda pada telefon atau komputer mereka, tempat mereka sudah didaftar masuk.

Daftarkan aplikasi

Dalam Usher Console, buka persekitaran, kemudian Aplikasi → Aplikasi baharu → TV atau baris perintah. Ia mendapat ID klien tanpa rahsia: peranti tidak dapat menyimpannya.

Alirannya

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": "…" }
  • Tinjau dengan sopan. Tunggu interval saat antara setiap tinjauan. Tinjauan yang lebih kerap dijawab dengan slow_down.
  • Berhenti apabila diberitahu. access_denied bermakna orang itu menolak; expired_token bermakna sepuluh minit telah berlalu. Minta kod baharu.
  • Tunjukkan alamatnya juga. Bukan semua orang boleh mengimbas kod QR: tunjukkan verification_uri dan kodnya, dijarakkan seperti 6L95-PBQQ.

Di /device, Lobby menunjukkan kepada orang itu aplikasi mana yang meminta dan untuk apa. Ia memberitahu mereka supaya meneruskan hanya jika mereka sendiri yang memulakannya dan peranti mereka menunjukkan kod yang sama.

Ikat token pada peranti (DPoP)

Token yang disalin daripada peranti tetap token. Dengan DPoP (RFC 9449), peranti menyimpan kunci peribadi dan menghantar bukti bertandatangan yang baharu bersama setiap permintaan. Token yang terikat pada kunci itu tidak berguna tanpanya.

  • Minta token terikat: hantar pengepala DPoP bersama permintaan token anda, dan Usher mengikat apa yang dikeluarkannya pada kunci anda (token_type ialah DPoP).
  • Wajibkannya: hidupkan Wajibkan DPoP semasa anda mencipta aplikasi itu. Usher kemudiannya tidak mengeluarkan token kepadanya tanpa bukti.
  • Gunakannya dengan Authorization: DPoP <token>, berserta bukti untuk permintaan itu.
  • Pustaka: kebanyakan pustaka OAuth yang menyokong DPoP melakukan semua ini untuk anda (pilihan DPoP dalam openid-client, contohnya).