2012-11-08 11 views
147

Anfänger Programmierer hier, bitte verzeiht Unkenntnis & Erklärungen :)Was ist ein Weiterleitungs-URI? Wie funktioniert es in der iOS App für OAuth2.0?

wirklich schön, werde ich die Anleitungen für einen bestimmten OAuth 2.0-Dienst zu lesen habe versucht, aber ich diese URI nicht verstehen umleiten ... in meinem Ich möchte versuchen, eine iPhone-App zu erstellen, die OAuth 2.0 für bestimmte Dienste verwendet. Ich habe eine App-ID, die generiert wurde, aber ich muss eine Art Umleitungs-URI bereitstellen, um den API-Schlüssel zu generieren.

Ist das eine URL, die ich irgendwo selbst hosten soll? Wie der Name vermuten lässt, würde ich denken, dass die Weiterleitungs-URL jemanden irgendwo "umleiten" soll. Meine einzige Vermutung ist, dass es die URL ist, zu der ein Benutzer weitergeleitet wird, nachdem er sich beim Dienst angemeldet hat.

Aber selbst wenn diese Annahme richtig ist, verstehe ich keine andere Sache - wie kann meine App wieder geöffnet werden, nachdem ich sie an den Browser für die Benutzeranmeldung gesendet habe?

Antwort

168

Lesen Sie dazu:

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

oder eine noch einfachere aber kurze Erklärung:

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

Der umleiten URI der Punkt der App Rückruf-Eintrag ist. Denken Sie darüber nach, wie OAuth für Facebook funktioniert - nachdem der Endbenutzer die Berechtigungen akzeptiert hat, muss "etwas" von Facebook aufgerufen werden, um zur App zurückzukehren, und das "Etwas" ist die Weiterleitungs-URI. Darüber hinaus sollte der Weiterleitungs-URI von dem ursprünglichen Einstiegspunkt der App abweichen.

Der andere wichtige Punkt zu diesem Puzzle ist, dass Sie Ihre App von einer URL zu einem Webview geben konnte starten. Dazu folgte ich einfach mit dem Guide hier:

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/

Anmerkung: auf diesen letzten 2 Links "http: //" arbeitet in mobilen Öffnung Safari aber "tel: //" funktioniert nicht in Simulator

in der ersten App, ich nenne

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

In meiner zweiten App registriere ich "secondApp" (und NICHT "secondApp: //") als den Namen des URL Scheme, mit meiner Firma als URL-Bezeichner.

+25

Ich schätze Sie wirklich Zeit, die Zusammen diese Antwort zu erhalten! –

+1

Also, Sie müssen Ihre eigene Website im redirect_uri gegeben, ist das richtig? – huggie

+1

@huggie im Zusammenhang mit iOS-Apps - nein, glücklicherweise benötigen Sie keine eigene Website. Sie müssen lediglich feststellen, dass Ihre iOS-App über eine URL geöffnet werden kann, die dem Webbrowser zugewiesen wurde. lesen Sie: http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html –

6

Umgeleitete URL ist der Ort, an den der Benutzer weitergeleitet wird, nachdem er sich erfolgreich bei Ihrer App angemeldet hat. Um zum Beispiel ein Zugangstoken für Ihre App in Facebook zu erhalten, müssen Sie umgeleitetes URI subimttieren, was nichts anderes ist als die App-Domain, die Sie beim Erstellen Ihrer Facebook-App bereitstellen.

1

Wenn Sie Facebook SDK verwenden, müssen Sie sich nicht darum kümmern, alles für Weiterleitungs-URI auf der App-Verwaltungsseite von Facebook einzugeben. Richten Sie einfach ein URL-Schema für Ihre iOS App ein. Das URL-Schema Ihrer App sollte den Wert "fbxxxxxxxxxxx" haben, wobei xxxxxxxxxxx Ihre App-ID ist, wie auf Facebook angegeben. Um das URL-Schema für deine iOS-App einzurichten, gehe zur Registerkarte "Info" deiner App-Einstellungen und füge URL-Typ hinzu.