Kuinka tanssia OAuth: vaihe vaiheelta

Viisi, kuusi, seitsemän, kahdeksan!

Useimmiten yritän oppia jotain uutta ja toteuttaa sen käytännössä, minusta tuntuu nopeasti kadonnut lukemattomiin tanssiliikkeisiin. Yritän epätoivoisesti löytää oikean tavan tehdä asioita, mutta en oikein ymmärrä mitä tapahtuu tai miten päädyin huoneen väärälle puolelle ...

Vain kokeilla asioita, kunnes jokin toimii.

Ehkä se johtuu siitä, miten oppimisprosessini toimii, tai ehkä oppaat ja oppaat on suunnattu kokeneemmille tai teknisille ihmisille. Mutta kun olen kääritty pääni aiheeseen, tunnen aina, että siellä olisi oltava helppo opas ymmärtämään keskeisiä käsitteitä ja helpottamaan niiden soveltamista projektissa.

Joten tällä kertaa olen päättänyt lopettaa sen toivomisen ja tehdä sen itse, viimeisen oppimani asian avulla.

Ja tuo asia oli OAuth 2.0.

Mikä on OAuth?

Aloitetaan perusteista: OAuth tarkoittaa avointa valtuutusta. Se on prosessi, jonka kautta sovellus tai verkkosivusto voi käyttää yksityisiä käyttäjätietoja toisesta verkkosivustosta.

Tämä toinen verkkosivusto toimii yleensä vain luotettavan henkilöllisyyden tarjoajana. Se antaa pyytävälle sovellukselle joitain perustietoja sinusta, jotta sovellus voi luoda profiilin. Tällä tavalla sinun ei tarvitse täyttää tylsää kirjautumislomaketta ja käsitellä vielä toista salasanaa

Olet jo käyttänyt tätä ainakin gazillion kertaa, itse asiassa käytit sitä aina napsauttaessasi Kirjaudu sisään Facebookilla / Google / GitHub /…. Seuraavaksi sinulle näytettiin suostumusnäyttö, joka näytti mitä (sanotaan) Facebook-profiilisi tietoja, joiden sallit, että-hot-new-app.com lukea (ja joskus kirjoittaa). Tämän jälkeen, koska-hot-new-app.com luottaa Facebookin tarjoamaan henkilöllisyyteen, he voivat luoda profiilin sinulle tietokantaansa käyttämällä saamiaan tietoja.

Viestintä that-hot-new-app.com ja Facebookin välillä päättyy yleensä tähän. Siksi profiilikuvasi ei muutu kaikkialla Internetissä, jos muutat sitä Facebookissa. He eivät vain koskaan palaa Facebookiin ja pyytä päivitetyt tiedot.

Kun marimba-rytmit alkavat soittaa…

Tämän tyyppisten mekanismien rakentamiseen on toinen tarkoitus, jolla on paljon enemmän potentiaalia: identiteetin tarjoajan käyttäminen palveluntarjoajana (jatkuvalla tavalla). Tämä tarkoittaa sitä, että kommunikoit sen kanssa säännöllisesti toimittaaksesi parannettuja ominaisuuksia käyttäjillesi.

Mukava esimerkki tästä on Relive, palvelu, joka yhdistetään erilaisiin urheiluseurantasovelluksiin luomaan Earth-näkymän videoita juoksustasi tai ratsastustasi. Aina kun lopetat aktiviteetin, Relive kehottaa tarjoamaan luomaan videon siitä. Jos vastaat kyllä, he käsittelevät sitä ja ilmoittavat sinulle, kun se on valmis sosiaalisen median urheiluun ... tarkoitan jakamista

Näiden kahden käytön välillä ei todellakaan ole mitään teknistä eroa. Siksi sinun tulee olla varovainen, kun kirjaudut sisään sosiaaliseen mediaan tai Google / Gmail-tiliisi.

Se voi kuulostaa pelottavalta, mutta oikeastaan ​​ei ole mitään pelättävää. Muista vain, että olet valtuuttanut tämän-hot-new-app.com käyttämään sinua koskevia tietoja, jotka ovat yksityiskohtaisia ​​suostumusnäytössä, mahdollisesti toistuvasti. Ole tietoinen myöntämistäsi luvista ja varmista, että osaat poistaa ne käytöstä aina, kun et enää luota.

Jos esimerkiksi käytät Google-tiliäsi pääsyä varten-hot-new-app.com, mutta et halua enää sallia sitä, mene vain Google-tilisi asetuksiin ja poista heidän käyttöoikeudet.

Kaikki tärkeimmät henkilöllisyyden tarjoajat tarjoavat tämän hallinnan.

Hyvä on, mutta miten tanssit OAuthia?

Ennen kuin laskeudut osoitteeseen-hot-new-app.com ja napsautat jopa “Kirjaudu sisään YourFavoriteIdentityProviderilla”, jonkun - todennäköisesti kehittäjän - on luotava sovellus palveluntarjoajan sivustolta.

Tämä on tapa rekisteröidä uusi-kuva-app.com.com, jotta palveluntarjoaja tietää myöhemmin, kuka pyytää yksityisiä tietoja.

Tässä vaiheessa kehittäjä asettaa joitain tietoja sovelluksesta, kuten sovelluksen nimi tai verkkosivusto ja - mikä tärkeintä - uudelleenohjaus-URI. Palveluntarjoaja (kuten Google tai Facebook) käyttää tätä ottaakseen yhteyttä pyytävään sovellukseen ja kertoakseen käyttäjälle, että käyttäjä sanoi kyllä ​​

Lupaan, että sinun ei tarvitse kirjoittaa sitä käsin, olemme ylpeitä paperittomuudestamme.

Kun sovellus on rekisteröity, tarjoaja antaa that-hot-new-app.com: lle clientId: n ja clientSecretin, joita käytetään heidän välisessä viestinnässä. Ne toimivat kuin käyttäjänimi ja salasana sovellukselle.

Saat asiakastunnuksen ja clientSecretin heti, kun napsautat Tallenna sovellus

On erittäin tärkeää, että pidät clientSecret-turvatussa paikassa etkä jaa sitä muukalaisten kanssa. Jos joku pääsee siihen, hän voi pyytää yksityisiä käyttäjätietoja palveluntarjoajalta puolestasi ja käyttää niitä sitten pahuuteen!

Emme halua sitä.

Kädet vyötäröllä tai harteilla

Kaikkien näiden asioiden määrittämisen lisäksi kehittäjän on selvitettävä, millaisiin tietoihin palveluntarjoaja antaa pääsyn ja miten ne on segmentoitu.

Nämä ”segmentit” tunnetaan laajuuksina ja ne määrittelevät käyttöoikeudet, yleensä eroteltuna luku- / kirjoituskategorioihin. Joten esimerkiksi that-hot-new-app.com voi pyytää ”profiili: lue” ja “yhteystiedot: lue” -alueita. Tämä tarkoittaa sitä, että he voivat lukea mitä palveluntarjoaja määrittää profiilille ja yhteystiedoille. Muihin asioihin, kuten viesteihisi tai haluamaasi sisältöön, ei pääse pääsyä.

No, vain jotta asiat olisivat nyt yksinkertaisia, sanotaan, että that-hot-new-app.com on verkkosivusto, joka integroituu Typeformiin, kauniiden ja älykkäiden muotojen luomiseen tarkoitettu palvelu ja myös yritys, jonka parissa työskentelen. Haluat ehdottomasti kuumin asia nyt ja nopeasti, joten napsauttamalla heidän verkkosivuillaan “Kirjaudu sisään tyyppimuodolla” päästäksesi toimintaan. Mitä seuraavaksi?

Tässä on kotitekoinen, orgaaninen ja kolesteroliton kaavio, jota voidaan käyttää kartana koko asialle. Se voi näyttää hieman monimutkaiselta, mutta älä huolestu, tutkimme jokaista askelta seuraavaksi.

Värikkäät nuotit tuovat iloa sydämeeni

Valtuuta: ensimmäinen askel OAuth-tanssissa

Joten teet aloitteen ja napsautat ”Yhdistä tyyppimuodolla”. Täällä that-hot-new-app.com (THNA, josta olen kyllästynyt kirjoittamaan viivoilla erotettuja sanoja) lähettää sinut Typeformin valtuuttamaan päätepisteeseen (/ oauth / valtuutta) ja toimittamaan:

  • heidän clientId (muista, että se on THNA-käyttäjänimi)
  • heidän haluamansa laajuuden (tai käyttöoikeudet)
  • ja niiden uudelleenohjaus-URI (Typeform tietää sen jo siitä hetkestä kun olemme asettaneet koko asian, mutta lähetämme sen uudelleen ylimääräisenä suojakerroksena)

Tämä URL näyttää tältä:

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

Typeform käyttää näitä tietoja luotaessa suostumusnäytön, jossa voit tarkistaa, millaisia ​​asioita valtuutat THNA: n näkemään ja tekemään.

Kun olet lukenut perusteellisesti, mitä suostut ja napsautat onnellisena "Salli", Typeform lähettää sinut uudelleenohjauksen URI: hen väliaikaisesti, kuten esimerkiksi:

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

Token: tangOAuth kestää 2

Kaikki tämä edestakaisin tuntuu siltä, ​​että joku vie sinut tango-pyörähdykseen, eikö niin?

Toinen vaihe OAuth-tanssissa on, kun THNA vastaanottaa kyseisen koodin ja vaihtaa sen OAuth-merkiksi.

Joten THNA ottaa koodin ja lähettää sen takaisin Typeformille uudelleenohjaus-URI: n (kyllä, taas!) Ja asiakassalaisuuden (se on sovelluksen salasana!) Kanssa.

Palkintona hyvin tanssitetusta tanssista THNA saa kiiltävän OAuth-merkinnän, jonka avulla se voi olla vuorovaikutuksessa Typeformin kanssa käyttäjän puolesta, toisin sanoen… sinä!

Pysy kanssani, keinu kanssani

Tästä eteenpäin jokaisessa THNA: n pyynnössä Typeformille puolestasi heidän on sisällytettävä valtuutusotsikko kyseiseen käyttöoikeustunnukseen. Sen avulla Typeform (tai mikä tahansa muu tarjoaja) voi tunnistaa:

  • kuka pyytää tietoja (tässä tapauksessa THNA)
  • kuka on tietoja (sinä!)
  • ja varmista myös, että heillä on oikeat valtuudet käyttää näitä tietoja (vain mitä olet suostunut).

Valmis tanssilattialle

Joten nyt kun tiedät kaikki OAuth-tanssitekniikan vaiheet ja kehrät, sinun pitäisi olla valmis luomaan omia koreografioita, tarkoitan integraatioita, ja tekemään Internetistä vieläkin suurempi paikka.

Sinun piirrokset todella, kansikuva Gez Xavier Mansfield Unsplash-kuvasta.