Qu'est-ce qu'un URI de redirection? comment s'applique-t-il à l'application iOS pour OAuth2.0?

184

Programmeur débutant ici, pardonnez l'ignorance et les explications seront vraiment sympas :)

J'ai essayé de lire les didacticiels pour un certain service OAuth 2.0, mais je ne comprends pas cet URI de redirection ... dans mon contexte particulier, disons que j'essaie de créer une application iPhone qui utilise OAuth 2.0 pour certains services . J'ai un ID d'application qui a été généré, mais je dois fournir une sorte d'URI de redirection pour générer la clé API.

Est-ce une URL que je suis censé héberger moi-même quelque part ?? Comme son nom l'indique, je pense que l'URL de redirection est censée "rediriger" quelqu'un quelque part. Ma seule hypothèse est que c'est l'URL vers laquelle un utilisateur est redirigé après s'être connecté au service.

Cependant, même si cette hypothèse est correcte, je ne comprends pas une autre chose - comment mon application peut-elle être ouverte à nouveau après que je l'ai envoyée au navigateur pour la connexion de l'utilisateur?

David T.
la source

Réponses:

194

Lis ça:

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

ou une explication encore plus simple mais rapide:

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

L'URI de redirection est le point d'entrée de rappel de l'application. Pensez au fonctionnement d'OAuth pour Facebook - une fois que l'utilisateur final a accepté les autorisations, "quelque chose" doit être appelé par Facebook pour revenir à l'application, et ce "quelque chose" est l'URI de redirection. En outre, l'URI de redirection doit être différent du point d'entrée initial de l'application.

L'autre point clé de ce casse-tête est que vous pouvez lancer votre application à partir d'une URL donnée à une vue Web . Pour ce faire, j'ai simplement suivi le guide ici:

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

et

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

note: sur ces 2 derniers liens, "http: //" fonctionne dans l'ouverture de safari mobile mais "tel: //" ne fonctionne pas dans le simulateur

dans la première application, j'appelle

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

Dans ma deuxième application, j'enregistre "secondApp" (et NON "secondApp: //") comme nom du schéma d'URL, avec mon entreprise comme identifiant d'URL.

David T.
la source
1
Donc, vous devez créer votre propre site Web indiqué dans redirect_uri, est-ce exact?
huggie
1
@huggie dans le contexte des applications iOS - non, heureusement, vous n'avez pas besoin de votre propre site Web. il vous suffit de réaliser que votre application iOS peut être ouverte à partir d'une URL donnée au navigateur Web. lire: iosdevelopertips.com/cocoa/…
David T.
1
@Nazerke ajoute probablement que ": //" pour vous déjà. il vous suffit donc de définir le nom
David T.
1
quelqu'un pls corrige cette réponse - architecture-soa-bpm-eai.blogspot.com.br/2012/08/… n'existe plus
Leo
2
Salut @DavidT. très bonne réponse. Ils ne concernent que, et j'espère que vous pourrez me sauver, comment configurer les schémas pour les URI qui sont forcés d'utiliser http://, tels que [YouTube, Instagram, LinkedIn]? J'ai essayé de m'inscrire, par exemple, une http://localhost/oauth2callbackredirection et le schéma http, localhost ou oauth2callback mais aucun d'entre eux ne fonctionne
Tal Zion
9

L'URI redirigé est l'emplacement où l'utilisateur sera redirigé après une connexion réussie à votre application. Par exemple, pour obtenir un jeton d'accès pour votre application dans facebook, vous devez sous-traiter l'URI redirigé qui n'est rien que le domaine d'application que vous fournissez lorsque vous créez votre application facebook.

Dhirender Tyagi
la source
9

Jetez un œil au terrain de jeu OAuth 2.0.Vous obtiendrez un aperçu du protocole.Il s'agit essentiellement d'un environnement (comme toute application) qui vous montre les étapes impliquées dans le protocole.

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

Compteur
la source
2

Si vous utilisez le SDK Facebook, vous n'avez pas à vous soucier de saisir quoi que ce soit pour l'URI de redirection sur la page de gestion des applications de Facebook. Configurez simplement un schéma d'URL pour votre application iOS. Le schéma d'URL de votre application doit être une valeur "fbxxxxxxxxxxx" où xxxxxxxxxxx est l'identifiant de votre application tel qu'identifié sur Facebook. Pour configurer le schéma d'URL de votre application iOS, accédez à l'onglet Informations des paramètres de votre application et ajoutez le type d'URL.

Kunal Khanna
la source