TV, କନସୋଲ ଓ କମାଣ୍ଡ-ଲାଇନ ଟୁଲ
ଏକ TV ସହଜରେ ସାଇନ-ଇନ ପୃଷ୍ଠା ଦେଖାଇପାରେ ନାହିଁ, ଏବଂ ଏକ କମାଣ୍ଡ-ଲାଇନ ଟୁଲର ପାସୱାର୍ଡ ମାଗିବା ଉଚିତ ନୁହେଁ। ଡିଭାଇସ ଫ୍ଲୋରେ, ଡିଭାଇସଟି ଏକ ଛୋଟ କୋଡ ଦେଖାଏ, ଏବଂ ବ୍ୟକ୍ତି ଜଣକ ତାହା ନିଜ ଫୋନ କିମ୍ବା କମ୍ପ୍ୟୁଟରରେ, ଯେଉଁଠି ସେ ପୂର୍ବରୁ ସାଇନ ଇନ ହୋଇଛନ୍ତି, ତାଙ୍କ ଏନଭାଇରନମେଣ୍ଟର ଲବିରେ ଟାଇପ କରନ୍ତି।
ଆପ ପଞ୍ଜୀକରଣ କରନ୍ତୁ
Usher Consoleରେ ଏନଭାଇରନମେଣ୍ଟ ଖୋଲନ୍ତୁ, ତାପରେ ଆପ୍ଲିକେସନ → ନୂଆ ଆପ୍ଲିକେସନ → TV କିମ୍ବା କମାଣ୍ଡ ଲାଇନ। ଏହା ଏକ କ୍ଲାଏଣ୍ଟ 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ରେ, ଲବି ବ୍ୟକ୍ତିଙ୍କୁ ଦେଖାଏ କେଉଁ ଆପ ପଚାରୁଛି ଏବଂ କ’ଣ ପାଇଁ। ସେ ନିଜେ ଏହା ଆରମ୍ଭ କରିଥିଲେ ଏବଂ ତାଙ୍କ ଡିଭାଇସ ସମାନ କୋଡ ଦେଖାଉଥିଲେ ହିଁ ଆଗକୁ ବଢ଼ିବାକୁ ଏହା କହେ।
ଟୋକେନକୁ ଡିଭାଇସ ସହ ବାନ୍ଧନ୍ତୁ (DPoP)
ଏକ ଡିଭାଇସରୁ କପି କରାଯାଇଥିବା ଟୋକେନ ମଧ୍ୟ ଏକ ଟୋକେନ। DPoP (RFC 9449) ସହ, ଡିଭାଇସଟି ଏକ ପ୍ରାଇଭେଟ କୀ ରଖେ ଏବଂ ପ୍ରତ୍ୟେକ ଅନୁରୋଧ ସହ ଏକ ନୂଆ ସାଇନ କରାଯାଇଥିବା ପ୍ରମାଣ ପଠାଏ। ସେହି କୀ ସହ ବନ୍ଧା ଟୋକେନ ତା’ ବିନା ଅଦରକାରୀ।
- ବନ୍ଧା ଟୋକେନ ମାଗନ୍ତୁ: ଆପଣଙ୍କ ଟୋକେନ ଅନୁରୋଧ ସହ ଏକ
DPoPହେଡର ପଠାନ୍ତୁ, ଏବଂ Usher ଯାହା ଜାରି କରେ ତାହାକୁ ଆପଣଙ୍କ କୀ ସହ ବାନ୍ଧେ (token_typeହେଉଛିDPoP)। - ସେଗୁଡ଼ିକ ଆବଶ୍ୟକ କରନ୍ତୁ: ଆପ ତିଆରି କଲାବେଳେ DPoP ଆବଶ୍ୟକ ଚାଲୁ କରନ୍ତୁ। ତାପରେ Usher ପ୍ରମାଣ ବିନା ଏହାକୁ କୌଣସି ଟୋକେନ ଜାରି କରେ ନାହିଁ।
- ସେଗୁଡ଼ିକ ବ୍ୟବହାର କରନ୍ତୁ
Authorization: DPoP <token>ସହ, ଏବଂ ସେହି ଅନୁରୋଧ ପାଇଁ ଏକ ପ୍ରମାଣ ସହ। - ଲାଇବ୍ରେରୀ: DPoP ସମର୍ଥନ ଥିବା ଅଧିକାଂଶ OAuth ଲାଇବ୍ରେରୀ ଆପଣଙ୍କ ପାଇଁ ଏସବୁ କରେ (ଉଦାହରଣ ସ୍ୱରୂପ,
openid-clientରDPoPବିକଳ୍ପ)।