Мазмұнға өту
Құжаттама · Теледидарлар және пәрмен жолы құралдары

Теледидарлар, консольдер және пәрмен жолы құралдары

Теледидарға кіру бетін көрсету қиын, ал пәрмен жолы құралы құпиясөз сұрамауы керек. Құрылғы ағынында құрылғы қысқа кодты көрсетеді, ал адам оны телефонында немесе компьютерінде, өзі бұрыннан кірген ортасының Lobby бетіне енгізеді.

Қолданбаны тіркеңіз

Usher Console ішінде ортаны ашып, Қолданбалар → Жаңа қолданба → Теледидар немесе пәрмен жолы тармағын таңдаңыз. Қолданба клиент ID-ын алады, құпия алмайды: құрылғы оны сақтай алмайды.

Ағын

Терминал
# 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": "…" }
  • Сыпайы сұраңыз. Сұраулар арасында interval секунд күтіңіз. Жиірек сұрасаңыз, slow_down деген жауап келеді.
  • Айтылғанда тоқтаңыз. access_denied адамның бас тартқанын білдіреді; expired_token — он минут өткенін. Жаңа код сұраңыз.
  • Мекенжайды да көрсетіңіз. QR кодын бәрі бірдей сканерлей алмайды: verification_uri мен кодты 6L95-PBQQ сияқты бөліп көрсетіңіз.

/device мекенжайында Lobby адамға қай қолданба және не сұрап тұрғанын көрсетеді. Ол адамға мұны өзі бастаған болса және құрылғысы дәл сол кодты көрсетсе ғана жалғастыруды айтады.

Токендерді құрылғыға байланыстырыңыз (DPoP)

Құрылғыдан көшірілген токен бәрібір токен болып қала береді. DPoP (RFC 9449) арқылы құрылғы жеке кілтті сақтайды және әр сұраумен жаңа қол қойылған дәлел жібереді. Сол кілтке байланған токен онсыз пайдасыз.

  • Байланған токендерді сұраңыз: токен сұрауларыңызбен DPoP тақырыбын жіберіңіз, сонда Usher беретін токендерін сіздің кілтіңізге байланыстырады (token_type мәні — DPoP).
  • Оларды талап етіңіз: қолданбаны жасағанда DPoP талап ету параметрін қосыңыз. Сонда Usher оған дәлелсіз ешбір токен бермейді.
  • Оларды пайдаланыңыз: Authorization: DPoP <token> және сол сұрауға арналған дәлел арқылы.
  • Кітапханалар: DPoP қолдайтын OAuth кітапханаларының көбі мұның бәрін сіз үшін жасайды (мысалы, openid-client кітапханасының DPoP параметрі).