ПредишенСледващото

Протоколът използва Twitter, Google, Flickr, Digg, Yahoo и много други услуги.

Authentication - посещение на модален предприятие и да се покаже своята идентичност. Пазачът изглежда и реши: удостоверение сега? тюлени в място? снимка на едно и също? Опитен охрана може да ви опозная лично и да пропуснете или иначе. Удостоверяване може да бъде толкова просто като може да е сложно.

На уеб сайтове, обикновено удостоверяване се извършва чрез схема име / парола, принуждава потребителя да въвежда данни и да ги проверява на сървъра.

Използването OAuth2 за:

  • Получаването на разрешение от страна на потребителя за достъп до онлайн услугата с профила си.
  • Удостоверяване на онлайн услугата от ваше име.
  • Authentication обработка на грешки.

За да започнете да използвате OAuth2, трябва да знаете:

заявка за упълномощаване Token

Android удостоверяване чрез OAuth2

Притежаващ необходимите правомощия, можете да се обадите AccountManager.getAuthToken (), за да получите жетона. Повечето методи AccountManager - индукция. Трябва да го осъзнават като поредица от обратни повиквания, като например:

В този пример класа простира OnTokenAcquired AccountManagerCallback. AccountManager предизвиква серия () в OnTokenAcquired с AccountManagerFuture. съдържащ пакет. Ако повикването е успешно, символа е в рамките на пакета.

Можете да получите знак от пакета:

Ако всичко върви добре, пакета ще съдържа валиден знак в ключов KEY_AUTHTOKEN. Но не всичко върви добре, както е планирано.

Заявленията могат да се справят първите два случая, показва съобщение за грешка на потребителя. Ако мрежата е надолу или потребителят реши да не предостави достъп, вашата лична молба може да направи за него. Последните два случая малко по-сложно, тъй като тя е добре оптимизиран за кандидатстване трябва да се справят с тези неуспехи автоматично.

Третият случай на повреда, като недостатъчните им правомощия, предавани чрез пакет. че ще получите във вашия AccountManagerCallback (OnTokenAcquired от предишния пример). Ако пакет включва намерение в ключов KEY_INTENT. Удостоверител ви казва, че той се нуждае от пряко взаимодействие с потребителя, преди той да може да ви даде валиден знак.

Имайте предвид, че пример използва startActivityForResult (). и можеш да хванеш намерение резултат в метод onActivityResult () във вашата дейност. Ако няма да се изравнят резултата за намерение отговор удостоверяващ, че ще бъде невъзможно да се определи дали потребителят е заверен или не. Ако RESULT_OK резултат. Удостоверител актуализира запаметените идентификационни данни, че те са достатъчни за достъп, която сте поискали, може след това да се обадите AccountManager.getAuthToken () отново и да изиска нов означение за удостоверяване.

Последният път, когато означението е изтекъл, не е наистина AccountManager грешка. Единственият начин наистина да разберете дали белегът е с изтекъл срок - е да се свърже със сървъра, че ще бъде на разточителните и скъпи от AccountManager постоянно отидете онлайн и да проверите състоянието на всички свои жетони. Така че този неуспех може да се открие само когато приложението се опитва да използва за удостоверяване знак за достъп до уеб услугата.

Свържете се с онлайн услуги

Примерът по-долу показва как да се свържете със сървъра на Google. От Google използва OAuth2 стандартен протокол за удостоверяване на исканията, обсъждани тук техники са широко приложими. Имайте предвид, че всеки сървър е различен. Може да се наложи да направите малки промени в този пример, за да се вземат предвид вашата конкретна ситуация.

Google API изисква предоставянето на четири стойности за всяка заявка: ключови API, клиент за самоличност, клиент тайни и ключови за упълномощаване. Първите три са получени на сайта на конзолата на Google API. Последната стойност можете да получите като се обадите AccountManager.getAuthToken (). Ти ги предаде на сървъра на Google, като част от HTTP-заявка.

Ако заявката връща HTTP-401 грешка, а след това означението си бе отхвърлено. Най-честата причина за това - след изтичането на токен. Уговорката е проста: обадете AccountManager.invalidateAuthToken () и се повтаря искането символично отново.

От изтичането на символа е често срещано явление и коригиране на тази ситуация достатъчно лесно, много приложения изискват само белегът на срока на годност, дори преди да узнае за това. Ако актуализация знак евтини в зависимост от вашия сървър, може да доведе до AccountManager.invalidateAuthToken () преди първия AccountManager.getAuthToken повикване () и да се отърват от необходимостта да се поиска означение за удостоверяване два пъти.

В бъдеще ние ще разгледаме практически примери за OAuth.

Допълнителна информация

Свързани статии

Подкрепете проекта - споделете линка, благодаря!