Шта је ОАутх Цоннецт и како га користити
Многи од нас долазе у контакт са ОАутх-ом када претражују Веб, а већина нас чак и није свјесна његовог постојања. ОАутх (Опен Аутхентицатион) је систем који додељује веб сајтовима трећих страна ограничен приступ корисничким рачунима, на пример вашим Твиттер или Фацебоок налозима. Омогућава посетиоцима интеракцију унутар сајта без потребе за регистрацијом новог налога или пуштањем вашег корисничког имена и лозинке трећим лицима.
У овом водичу желим да представим концепт ОАутх и како се он може применити на програмере. Постоји много техничких детаља који су укључени у имплементацију ваше ОАутх апликације. Мој пример ће бити написан у ПХП-у користећи омотач Твиттер библиотеке, али можете користити скоро сваки популарни АПИ за програмирање од Питхона до Руби или Објецтиве-Ц.
Чак и ако се концепт осећа загонетно, покушајте да пробавите колико год можете. То је још увек веома мистериозна технологија, тек што је направљена 2007. године. Ја сигурно нисам разумео како да развијем потпуне ОАутх конекције чак и након првих неколико туторијала, али ако се држите тога, брзо ћете се ухватити. Прво, да развалимо ствари, мали увод!
Који проблеми можемо ријешити?
Ако узмете у обзир колико је више Интернета постало повезано, има смисла да корисници желе да размењују информације између више рачуна од Фацебоок-а у Твиттер-у, Тумблр-у, Фоурскуаре-у, а сада чак иу мобилним апликацијама као што су Патх или Инстаграм. Проблем с којим се сада суочавамо је како то постићи на најсигурнији и најједноставнији могући начин. ОАутх 1.0 је покушај да се реши овај и бројни други проблеми, у поређењу са старијим ОпенИД стандардима. Корисници још увијек уносе своје корисничко име / лозинку на друге веб странице трећих страна само да би се повезали с ОпенИД-ом. Ово не чини га сигурнијим за корисника. Под ОАутх спецификацијама, корисник никада не мора да чува податке о личном рачуну у бази података треће стране.
(Извор слике: Мартин Хассман)
Са ОАутх, главни провајдер налога (нпр. Твиттер, Фацебоок) прво ће вас (корисника) преусмерити на страницу за ауторизацију. Корисник се затим пријављује на главну мрежу, а затим прихвата или одбија нову везу на веб-локацију треће стране. Технологија је безболно једноставна и увек можете неовлашћено повезивати везе са подешавањима налога у било ком тренутку. Обратите пажњу на то да ваша лозинка никада није дата трећој страни, што овај протокол чини много безбеднијим од његовог партнера.
Како процес функционише
Постоје 3 стране које треба размотрити у стандардном ОАутх позиву:
- Давалац услуга - Главна мрежа од које покушавате да повучете податке. Они пружају одговор АПИ-ја као што су корисничко име, слика профила, УРЛ веб-локације и друге ствари.
- Потрошач - Апликација треће стране која жели да прима податке. То би била веб страница или мобилна апликација која чини иницијални захтјев за повезивање, а затим обрађује повратне податке након ауторизације.
- Усер - Особа која седи иза компјутера у интеракцији са сајтовима који би били ви!
Сврха ОАутх није да обезбеди одређену библиотеку за коришћење веб локација. То заправо успоставља “Правила” за изградњу отвореног АПИ протокола. Тако да док сви ми користимо ову технологију, заправо су програмери који ће заиста наћи интерес за ову област. Ако вам је потребно више информација погледајте ревидирану верзију в1.0 издану у априлу 2010.
Фацинг Сецурити
Цјелокупни процес у коначници захтијева 2 различита кључа уз приступни токен. Кључеви добијате од роот сервиса након регистрације апликације - оне су познате као ваше клијент и тајни ИД. ИД клијента се обично прослеђује у УРЛ за потврду идентитета да би сервер могао да препозна вашу апликацију.
Тајни ИД се налази у вашем коду тако да сервер може да потврди идентитет ваше апликације. Слично томе, удаљени сервер ће ускладити ваш тајни ИД са својим, тако да нећете погрешно послати захтјев за Твиттер на Фацебоок-ов АПИ или обрнуто. Ако корисник одобри везу и сви кључеви се поклапају, онда се они враћају на вашу веб локацију са дугим кодом случајних бројева и слова.
Овај код се користи за генерисање новог приступни токен. Они се понашају слично променљивој сесије коју можете сачувати у колачићима да би корисник био улогован на ваш сајт. Једина разлика је што ће многе услуге послати натраг приступни токен и тајни приступни токен. Вероватно вам је потребна оба ова елемента да бисте извукли податке са сервера. Један примјер би могао бити захтјев за фотографију профила корисника за спремање копије на властиту веб-локацију.
Пример библиотеке за Твиттер ОАутх
Развојни инжењери често не почињу од нуле па зашто не бисте погледали у претходно изграђену библиотеку? То ће нам уштедети време и главобоље, када радимо са ПХП-ом. Хајде да размислимо о стварању једноставног примера на врху Твиттер АПИ-ја.
Топло препоручујем Твиттер Асинц би Јаисен Матхаи на ГитХубу. Функционише савршено и чак пружа неке заиста јасне примерке које можемо погледати. За сада можете да преузмете .зип, али пре него што погледамо код, потребно је да се региструјемо и да добијемо ИД апликације из Твиттера.
Регистровање нове апликације
Твиттер Дев Центер је одличан ресурс за оне који тек почињу са АПИ-јем. Написана је и преписивана много пута током неколико година. Страница коју желимо је хттпс://дев.твиттер.цом/аппс/нев. Од вас ће се тражити да се прво пријавите, а затим морате да унесете неке акредитиве за нову апликацију.
Назив и опис апликације приказују се када корисник оде да ауторизује са Твиттер-ом. Ваш Веб УРЛ је такође важан за разликовање адресе треће стране. Било би лакше радити са доменом уживо, иако можете користити лоцалхост за тестирање, али ја не подржавам овај метод. Једноставно се пријавите за бесплатан веб хост и покрените своје скрипте одатле.
УРЛ за повратни позив се наводи као крајње одредиште након што ваши посјетиоци прихвате или ускрате ауторизацију. То је ваш посао као програмера да прочитате одговор од Твиттер-а и да у складу с тим пошаљете поруку. У Асинц библиотеци већ смо добили неке акредитиве, али они неће радити јер је цаллбацк УРЛ наведен на спољном блогу. Ако сте заинтересовани за изградњу потпуно повезане ОАутх веб апликације, у наставку сам навео неке детаљне туторијале.
Проверите код
Ако користите удаљени веб хост, можда ћете желети да распакирате Асинц библиотеке и пренесете их у нови директоријум. Иначе можете само провјерити изворни код. Вероватно је да нећемо бити у стању да повучемо нову везу. Међутим, практично искуство са учитавањем и уређивањем изворног кода је увек процес учења.
У коријенском директоријуму наћи ћете именовани скрипт симплеТест.пхп. Унутра је пуно ПХП кодова који се односе на ОАутх библиотеке. Нећу моћи све да саставим за вас, али требало би да погледамо важан блок кода да бисмо прецизно одредили детаље.
Постоје 4 веома важне варијабле за потрошачки кључ и тајни ИД, заједно са токеном и тајним идентификационим бројем. Нису сви АПИ сервиси потребни овај скуп од 4, али је то одговарајући ОАутх протокол. Класа ЕпиТвиттер захтева све 4 вредности као параметре и генерише УРЛ везе у Твиттер.
хттпс://апи.твиттер.цом/оаутх/аутхоризе?оаутх_токен=ТОКЕН_ИД_ХЕРЕ
Са овим новим динамичким УРЛ-ом можете креирати дугме за пријављивање за своје кориснике. Ово би их прво усмерило на безбедну Твиттер АПИ страницу где корисник или прихвата или одбија вашу везу. Без обзира на њихов избор, корисник ће затим бити поново преусмерен на ваш УРЛ за повратни позив апликације. Цео отворени протокол има веома чисту перспективу која омогућава брзи развој, посебно када су библиотеке доступне на готово сваком језику.
Сродне везе
- хуениверсе оаутх 1.0
- Благи увод у ОАутх
- ОАутх ФАК
- Водич за Девтерацију за Фацебоок
- Једноставно Твиттер ОАутх Сигнин
- Коришћење ОАутх са Твиттер-ом у Цоцоа Објецтиве-Ц
- Конзумирање ОАутх-а у Раилс-у
Закључак
Надам се да вас је овај увод у ОАутх заинтересовао за изградњу апликација преко протокола. Многи програмери теже управо таквом решењу, а ОАутх 2.0 може бити будућност међусобно повезаних друштвених мрежа. Већ сам користио више од двадесет веза у мој Твиттер налог и заиста сам био импресиониран документацијом програмера!
Јасно је да има много тога да се каже о овој теми. То није нешто што бисте могли у потпуности обрадити у једном сједењу. Прегледајте мрежу да бисте сазнали више ОАутх решења и јавите нам своје мисли у области за дискусију у наставку.