Was ist eine Umleitungs-URI? Wie trifft es auf die iOS-App für OAuth2.0 zu?

184

Anfänger Programmierer hier, bitte entschuldigen Sie Unwissenheit und Erklärungen werden wirklich nett sein :)

Ich habe versucht, die Tutorials für einen bestimmten OAuth 2.0-Dienst zu lesen, aber ich verstehe diesen Umleitungs-URI nicht. Nehmen wir in meinem speziellen Kontext an, ich versuche, eine iPhone-App zu erstellen, die OAuth 2.0 für einen Dienst verwendet . Ich habe eine App-ID, die generiert wurde, aber ich muss eine Art Umleitungs-URI angeben, um den API-Schlüssel zu generieren.

Ist das eine URL, die ich selbst irgendwo hosten soll? Wie der Name schon sagt, würde ich denken, dass die Weiterleitungs-URL irgendwo jemanden "umleiten" soll. Ich vermute nur, dass dies die URL ist, zu der ein Benutzer umgeleitet wird, nachdem er sich beim Dienst angemeldet hat.

Selbst wenn diese Annahme richtig ist, verstehe ich eine andere Sache nicht - wie kann meine App erneut geöffnet werden, nachdem ich sie zur Benutzeranmeldung an den Browser gesendet habe?

David T.
quelle

Antworten:

193

Lesen Sie dies:

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

oder eine noch einfachere, aber schnelle Erklärung:

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

Der Umleitungs-URI ist der Rückruf-Einstiegspunkt der App. Überlegen Sie, wie OAuth für Facebook funktioniert - nachdem der Endbenutzer Berechtigungen akzeptiert hat, muss "etwas" von Facebook aufgerufen werden, um zur App zurückzukehren, und dieses "Etwas" ist die Umleitungs-URI. Darüber hinaus sollte sich der Umleitungs-URI vom ursprünglichen Einstiegspunkt der App unterscheiden.

Der andere wichtige Punkt bei diesem Rätsel ist, dass Sie Ihre App über eine URL starten können, die einer Webansicht zugewiesen wurde . Dazu habe ich einfach die Anleitung hier befolgt:

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

und

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

Hinweis: Bei diesen beiden letzten Links funktioniert "http: //" beim Öffnen der mobilen Safari, "tel: //" jedoch nicht im Simulator

In der ersten App rufe ich an

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

In meiner zweiten App registriere ich "secondApp" (und NICHT "secondApp: //") als Namen des URL-Schemas und mein Unternehmen als URL-ID.

David T.
quelle
1
Sie müssen also Ihre eigene Website in redirect_uri einrichten. Ist das richtig?
Huggie
1
@huggie im Kontext von iOS-Apps - nein, zum Glück benötigen Sie keine eigene Website. Sie müssen nur erkennen, dass Ihre iOS-App über eine URL geöffnet werden kann, die dem Webbrowser zugewiesen wurde. Lesen Sie: iosdevelopertips.com/cocoa/…
David T.
1
@Nazerke fügt wahrscheinlich das ": //" für dich schon hinzu. Sie müssen also nur den Namen des Schemas angeben
David T.
1
jemand pls korrigieren diese Antwort - Architektur-soa-bpm-eai.blogspot.com.br/2012/08/… existiert nicht mehr
Leo
2
Hallo @DavidT. gute Antwort. Sie betreffen nur und hoffen, dass Sie mich retten können, wie Schemata für URIs konfiguriert werden, die zur Verwendung gezwungen sind http://, wie z [YouTube, Instagram, LinkedIn]. Ich habe versucht, zum Beispiel die http://localhost/oauth2callbackWeiterleitung und das Schema http, localhost oder oauth2callback zu registrieren , aber keiner von ihnen funktioniert
Tal Zion
9

umgeleitete uri ist der Ort, an den der Benutzer nach erfolgreicher Anmeldung bei Ihrer App umgeleitet wird. Um beispielsweise ein Zugriffstoken für Ihre App in Facebook zu erhalten, müssen Sie umgeleitete Uri subimtieren. Dies ist nichts anderes als die App-Domain, die Sie beim Erstellen Ihrer Facebook-App bereitstellen.

Dhirender Tyagi
quelle
9

Schauen Sie sich den OAuth 2.0-Spielplatz an. Sie erhalten einen Überblick über das Protokoll. Es handelt sich im Grunde genommen um eine Umgebung (wie jede App), die Ihnen die Schritte des Protokolls zeigt.

https://developers.google.com/oauthplayground/

Reckoner
quelle
2

Wenn Sie das Facebook SDK verwenden, müssen Sie sich nicht die Mühe machen, auf der App-Verwaltungsseite von Facebook etwas für die Umleitungs-URI einzugeben. Richten Sie einfach ein URL-Schema für Ihre iOS-App ein. Das URL-Schema Ihrer App sollte den Wert "fbxxxxxxxxxxxx" haben, wobei xxxxxxxxxxx Ihre App-ID ist, wie auf Facebook angegeben. Um das URL-Schema für Ihre iOS-App einzurichten, rufen Sie die Registerkarte "Info" Ihrer App-Einstellungen auf und fügen Sie den URL-Typ hinzu.

Kunal Khanna
quelle