Paano Sayaw ang OAuth: Isang Hakbang-Hakbang na Aralin

Limang anim pitong walo!

Karamihan sa mga oras na sinusubukan kong matuto ng bagong bagay at isabuhay ito. Mabilis akong naramdaman na nawala sa iba't ibang mga sayaw sa sayaw. Pilit kong sinusubukang hanapin ang tamang landas habang hindi ko talaga maintindihan kung ano ang nangyayari o kung paano ako napunta sa maling bahagi ng silid.

Subukan lamang ito hanggang sa may gumana.

Marahil ito ang paraan ng paggana ng aking proseso ng pag-aaral, o marahil ang mga gabay at tutorial ay naglalayon sa mga taong may karanasan o tech-savvy. Ngunit pagkatapos suriin ang paksa, dapat palaging may isang simpleng gabay upang maunawaan ang mga pangunahing konsepto at gawing mas madali silang mailapat sa isang proyekto.

Kaya't sa oras na ito, nagpasiya akong hindi na gugustuhin ito at gawin ito sa aking sarili gamit ang huling bagay na natutunan.

At ang bagay na iyon ay OAuth 2.0.

Ano ang OAuth?

Magsimula tayo sa mga pangunahing kaalaman: Ang OAuth ay nangangahulugang Buksan ang Pahintulot. Ito ang proseso kung saan maaaring ma-access ng isang application o website ang pribadong data ng gumagamit mula sa ibang website.

Karaniwang gagana lamang ang ibang website na ito bilang isang pinagkakatiwalaang tagapagbigay ng pagkakakilanlan. Nagbibigay ito sa humihiling na app ng ilang pangunahing impormasyon tungkol sa iyo para ma-profile ang app. Sa ganitong paraan, hindi mo kailangang punan ang isang pagbubutas na form sa pagpaparehistro at makipag-usap sa isa pang password

Nagamit mo na ito kahit ilang milyong beses na. Sa katunayan, ginamit mo ito sa tuwing na-hit mo ang "Mag-sign in gamit ang Facebook / Google / GitHub / ...". Susunod na ipinakita sa iyo ng isang screen ng pahintulot na nagsasaad kung anong impormasyon mula sa iyong (halimbawa) ang profile sa Facebook na pinapayagan mong mabasa ang-hot-new-app.com (at kung minsan ay nagsusulat). Dahil pinagkakatiwalaan ng that-hot-new-app.com ang pagkakakilanlan na ibinigay ng Facebook, maaari nilang magamit ang data na natanggap upang lumikha ng isang profile para sa iyo sa kanilang database.

Dito karaniwang nagtatapos ang komunikasyon sa pagitan ng that-hot-new-app.com at Facebook. Dahil dito, hindi magbabago ang iyong larawan sa profile sa buong internet kapag binago mo ito sa Facebook. Hindi ka na lamang babalik sa Facebook at magtanong para sa na-update na data.

Kapag nagsimulang tumugtog ang mga ritmo ng marimba ...

Mayroong isa pang layunin para sa pagbuo ng gayong mekanismo na may higit na potensyal: gamitin ang tagapagbigay ng pagkakakilanlan bilang tagapagbigay ng serbisyo (sa isang patuloy na batayan). Nangangahulugan ito na makikipag-usap ka sa kanya sa isang regular na batayan upang magbigay ng advanced na pag-andar sa iyong mga gumagamit.

Ang isang magandang halimbawa nito ay ang Relive, isang serbisyo na kumokonekta sa iba't ibang mga app ng pagsubaybay sa palakasan upang lumikha ng mga video na may pagtingin sa daigdig ng iyong pagpapatakbo o pagsakay. Sa tuwing tatapusin mo ang isang aktibidad, uudyok ka ng Relive na lumikha ng isang video nito. Kung sasabihin mong oo, iproseso nila ito at aabisuhan ka kapag handa na ito para sa mga karapatan sa pagmamayabang sa social media. Ang ibig kong sabihin ay "ibahagi"

Talagang walang pagkakaiba sa teknikal sa pagitan ng dalawang gamit na ito. Ito ang dahilan kung bakit dapat kang mag-ingat kung saan ka mag-sign in gamit ang iyong social media o Google / Gmail account.

Maaari itong maging nakakatakot, ngunit wala talagang mag-alala. Tandaan, pinahintulutan mo ang that-hot-new-app.com upang ma-access ang impormasyon tungkol sa iyong nakalista sa screen ng pahintulot, posibleng pana-panahon. Alamin ang mga pahintulot na ibinibigay mo at tiyaking alam mo kung paano i-off ang mga ito kung hindi mo na sila pinagkakatiwalaan.

Halimbawa, kung gagamitin mo ang iyong Google Account upang ma-access ang that-hot-new-app.com ngunit hindi mo na nais itong payagan, pumunta lamang sa iyong Mga Setting ng Google Account at huwag paganahin ang kanilang pag-access.

Ang lahat ng mga pangunahing tagabigay ng pagkakakilanlan ay nag-aalok ng kontrol dito.

Okay, ngunit paano mo isayaw ang OAuth?

Bago ka mapunta sa that-hot-new-app.com at pindutin ang "Mag-sign up sa YourFavoriteIdentityProvider," isang tao - malamang na isang developer - ay kailangang lumikha ng isang application sa website ng provider.

Pinapayagan kang magparehistro sa that-hot-new-app.com upang malaman ng provider sa paglaon kung sino ang humihiling para sa pribadong impormasyon.

Sa hakbang na ito, nag-set up ang developer ng ilang impormasyon tungkol sa application, tulad ng: Hal. Ang pangalan o website ng aplikasyon at, pinakamahalaga, isang pag-redirect ng URI. Gagamitin ito ng provider (tulad ng Google o Facebook) upang makipag-ugnay sa humihiling na app at ipaalam sa kanila na sinabi ng gumagamit na oo

Ipinapangako kong hindi mo ito isusulat sa pamamagitan ng kamay, ipinagmamalaki namin ang aming kawalan ng papel.

Sa sandaling nakarehistro ang app, ang provider na-hot-new-app.com ay nagbibigay ng isang clientId at isang clientSecret, na ginagamit para sa komunikasyon sa pagitan nila. Gumagana ang mga ito tulad ng isang username at password para sa application.

Matatanggap mo ang clientID at clientSecret nang direkta pagkatapos mong mag-click sa I-save ang application

Napakahalaga na panatilihin mo ang iyong clientSecret sa isang ligtas na lugar at hindi ito ibahagi sa mga hindi kilalang tao. Kung may makakakuha ng access dito, maaari silang humiling ng pribadong data ng gumagamit mula sa provider sa iyong ngalan at pagkatapos ay gamitin ang mga ito para sa kasamaan!

Ayaw namin niyan.

Mga kamay sa baywang o balikat

Bukod sa pagse-set up ng lahat ng mga bagay na ito, kailangang alamin ng developer kung anong uri ng data ang pinapayagan ng vendor na mag-access at kung paano ito nai-segment.

Ang mga "segment na" ito ay kilala bilang mga lugar at tumutukoy sa mga karapatan sa pag-access na karaniwang nahahati sa mga kategorya na basahin / isulat. Halimbawa, maaaring hilingin ng that-hot-new-app.com ang mga lugar na "profile: read" at "contact: read". Nangangahulugan ito na mababasa nila ang lahat na itinalaga ng provider sa mga segment na "Profile" at "Mga contact." Hindi mai-access ang iba pang mga bagay, hal. B. sa iyong mga post o sa nilalaman na gusto mo.

Sabihin nating ang-hot-new-app.com ay isang website na itinayo sa Typeform, isang serbisyo para sa paglikha ng magaganda at matalinong mga form, at pati na rin sa kumpanyang pinagtatrabahuhan ko. Tiyak na nais mong harapin ang pinakamainit kaagad at mabilis. I-click ang "Mag-sign in gamit ang Typeform" sa website ng kumpanya upang makapagsimula kaagad. Anong susunod?

Narito ang isang homemade, organic, libreng tsart ng kolesterol na gagamitin bilang isang mapa ng buong bagay. Maaaring magmukhang medyo kumplikado ito, ngunit huwag magalala, susuriin pa namin ang bawat hakbang.

Ang mga makukulay na tala ay nagdudulot ng kagalakan sa aking puso

Pahintulutan: ang unang hakbang sa sayaw ng OAuth

Kaya't ikaw ang gumawa ng pagkusa at mag-click sa "Kumonekta sa Typeform". Dito ipinapadala ito ng this-hot-new-app.com (THNA mula ngayon dahil pagod na ako sa hyphenated na mga salita) sa endpoint ng Pahintulot ng Typeform (/ oauth / pahintulutan) at isinasaad:

  • iyong clientId (tandaan, ito ang username ng THNA)
  • kanilang mga nais na lugar (o mga karapatan sa pag-access)
  • at ang kanilang pag-redirect ng URI (Alam na ng Typeform ito kapag na-set up namin ito, ngunit ipinapadala namin ito muli bilang isang labis na layer ng seguridad)

Ang url na ito ay ganito ang hitsura:

https://api.typeform.com/oauth/authorize?client_id=yourClientId&scope=accounts:read+forms:read+results:read

Ginagamit ng Typeform ang impormasyong ito upang makabuo ng isang screen ng pahintulot kung saan maaari mong suriin kung anong uri ng mga bagay ang pinapayagan mong makita at gawin ng THNA.

Matapos maingat na basahin ang iyong pahintulot at masayang i-click ang "Pahintulutan", magpapadala sa iyo ang Typeform ng isang pansamantalang mensahe sa pag-redirect ng URI:

https://that-hot-new-app.com/auth/redirect?code=xxxXXXxxxXXXxxx

Token: tumatagal ng 2 sa tangOAuth

Ang lahat ng iyon pabalik-balik ay nararamdaman na tulad ng isang tao ay naglalabas sa iyo para sa isang tango spin, tama?

Ang pangalawang hakbang ng sayaw ng OAuth ay upang matanggap ng THNA ang code na ito at ipagpalit ito sa isang OAuth token.

Kaya kinukuha ng THNA ang code na ito at ibinalik ito sa Typeform kasama ang pag-redirect ng URI (oo, muli!) At ang lihim ng kliyente (iyon ang password ng app!).

Bilang gantimpala para sa isang mahusay na sumayaw na sayaw, nakatanggap ang THNA ng isang makintab na token ng OAuth kung saan maaari siyang makipag-ugnay sa Typeform sa ngalan ng gumagamit, iyon ay, ikaw!

Manatili ka sa akin, timbangin mo ang sarili mo sa akin

Mula ngayon, dapat magdagdag ang THNA ng isang header ng pagpapahintulot sa access token na ito sa iyong ngalan sa bawat kahilingan sa Typeform. Pinapayagan nitong makilala ang Typeform (o anumang iba pang provider):

  • na humihingi ng data (sa kasong ito THNA)
  • Sino ang data ng (ikaw!)
  • Tiyaking din na mayroon kang tamang pahintulot upang ma-access ang data na ito (sa iyong pahintulot lamang).

Handa na para sa dance floor

Ngayong alam mo na ang lahat ng mga hakbang at pag-ikot ng diskarteng sayaw ng OAuth, dapat kang maging handa na lumikha ng iyong sariling mga koreograpia, pagsasama, at gawing mas malaking lugar ang internet.

Mabuting pagbati, Cover photo ni Gez Xavier Mansfield sa Unsplash.