Co to jest identyfikator URI przekierowania? jak to się ma do aplikacji na iOS dla OAuth2.0?

184

Początkujący programista tutaj, proszę wybaczyć ignorancję i wyjaśnienia będą naprawdę miłe :)

Próbowałem przeczytać samouczki dotyczące określonej usługi OAuth 2.0, ale nie rozumiem tego identyfikatora URI przekierowania ... w moim konkretnym kontekście, powiedzmy, że próbuję zbudować aplikację na iPhone'a, która używa OAuth 2.0 do niektórych usług . Mam wygenerowany identyfikator aplikacji, ale muszę podać identyfikator URI przekierowania, aby wygenerować klucz API.

Czy to adres URL, który powinienem gdzieś hostować? Jak sama nazwa wskazuje, pomyślałbym, że adres URL przekierowania powinien kogoś „przekierować”. Domyślam się tylko, że jest to adres URL, na który użytkownik jest przekierowywany po zalogowaniu się do usługi.

Jednak nawet jeśli to założenie jest prawidłowe, nie rozumiem jeszcze jednej rzeczy - jak mogę ponownie otworzyć moją aplikację po wysłaniu jej do przeglądarki w celu zalogowania się?

David T.
źródło

Odpowiedzi:

194

Przeczytaj to:

http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work

lub jeszcze prostsze, ale szybkie wyjaśnienie:

http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html

Identyfikator URI przekierowania jest punktem wejścia wywołania zwrotnego aplikacji. Zastanów się, jak działa OAuth dla Facebooka - po zaakceptowaniu uprawnień przez użytkownika końcowego, Facebook musi wywołać „coś”, aby wrócić do aplikacji, a „coś” to identyfikator URI przekierowania. Ponadto identyfikator URI przekierowania powinien być inny niż początkowy punkt wejścia aplikacji.

Innym kluczowym punktem tej układanki jest to, że możesz uruchomić aplikację z adresu URL podanego do podglądu strony . Aby to zrobić, po prostu zastosowałem się do przewodnika tutaj:

http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

i

http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/

Uwaga: w tych ostatnich 2 linkach „http: //” działa podczas otwierania mobilnego safari, ale „tel: //” nie działa w symulatorze

w pierwszej aplikacji dzwonię

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];

W mojej drugiej aplikacji rejestruję „secondApp” (a NIE „secondApp: //”) jako nazwę schematu URL, a moja firma jako identyfikator adresu URL.

David T.
źródło
1
Musisz założyć własną stronę internetową podaną w redirect_uri, czy to prawda?
huggie
1
@huggie w kontekście aplikacji na iOS - nie, na szczęście nie potrzebujesz własnej strony internetowej. musisz tylko zdać sobie sprawę, że aplikację na iOS można otworzyć z adresu URL podanego w przeglądarce internetowej. czytaj: iosdevelopertips.com/cocoa/…
David T.
1
@Nazerke prawdopodobnie dodaje już, że „: //” już dla ciebie. więc wystarczy zaplanować nazwisko
David T.
1
ktoś proszę naprawić tę odpowiedź - architektura-soa-bpm-eai.blogspot.com.br/2012/08/... już nie istnieje
Leo
2
Cześć @DavidT. świetna odpowiedź. Dotyczą tylko, i mam nadzieję, że mnie uratujesz, sposobu konfiguracji schematów dla identyfikatorów URI, które są zmuszone używać http://, takich jak [YouTube, Instagram, LinkedIn]? Próbowałem zarejestrować na przykład http://localhost/oauth2callbackprzekierowanie, a schemat http, localhost lub oauth2callback, ale żaden z nich nie działa
Tal Zion
9

przekierowane uri to lokalizacja, w której użytkownik zostanie przekierowany po pomyślnym zalogowaniu się do Twojej aplikacji. na przykład, aby uzyskać token dostępu do aplikacji na Facebooku, należy przesłać przekierowane URI, które jest niczym więcej niż domeną aplikacji, którą udostępniasz podczas tworzenia aplikacji na Facebooku.

Dhirender Tyagi
źródło
2

Jeśli używasz zestawu SDK Facebooka, nie musisz zawracać sobie głowy wprowadzaniem czegokolwiek w celu przekierowania identyfikatora URI na stronie zarządzania aplikacjami na Facebooku. Wystarczy skonfigurować schemat URL dla aplikacji na iOS. Schemat adresu URL aplikacji powinien mieć wartość „fbxxxxxxxxxxx”, gdzie xxxxxxxxxxx to identyfikator Twojej aplikacji zidentyfikowany na Facebooku. Aby skonfigurować schemat adresów URL dla aplikacji na iOS, przejdź do karty informacyjnej ustawień aplikacji i dodaj Typ adresu URL.

Kunal Khanna
źródło