176 votes

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

Programmeur débutant ici, veuillez pardonner l'ignorance et les explications seront très appréciées :)

j'ai essayé de lire les tutoriels pour un certain service OAuth 2.0, mais je ne comprends pas cette URI de redirection... dans mon contexte particulier, disons que j'essaie de construire une application iPhone qui utilise OAuth 2.0 pour un certain service. j'ai un App ID 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'URI de redirection est censé "rediriger" quelqu'un quelque part. ma seule hypothèse est qu'il s'agit de 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 avoir été envoyée au navigateur pour la connexion de l'utilisateur ?

192voto

David T. Points 3335

J'ai enfin trouvé !

Mais bon sang, est-ce que le trafic de stack overflow est vraiment faible ces jours-ci ?

Je suppose que j'avais juste besoin de lire ça :

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

ou pour ceux qui préfèrent une explication encore plus simple mais rapide :

http://architecture-soa-bpm-eai.blogspot.com/2012/08/oauth-20-for-my-ninth-grader.html

une fois que j'ai compris cela, j'ai réalisé que l'URI de redirection est le point d'entrée de l'application. je ne l'avais pas compris avant de penser au fonctionnement d'OAuth pour facebook - après que l'utilisateur final ait accepté les permissions, "quelque chose" doit être appelé par facebook pour revenir à l'application, et ce "quelque chose" est l'URI de redirection. de plus, l'URI de redirection doit être différent du point d'entrée initial de l'application.

l'autre point clé de ce puzzle est que je n'avais pas réalisé vous pourriez lancer votre application à partir d'une URL donnée à une vue Web.

Pour ce faire, j'ai simplement suivi le guide ici :

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

y

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

et voilà ! c'est tellement plus simple qu'Android j'ai juste créé 2 applications sur le même simulateur et l'une a lancé l'autre. [note : sur ces 2 derniers liens, "http://" fonctionne pour ouvrir le safari mobile mais "tel://" ne fonctionne pas dans le simulateur].

dans la première application, j'appelle

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

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

J'espère que cela aidera quelqu'un d'autre

8voto

Dhirender Tyagi Points 25

L'uri redirigé est l'endroit où l'utilisateur sera redirigé après s'être connecté avec succès à votre application. par exemple, pour obtenir un jeton d'accès pour votre application dans facebook, vous devez sous-imposer l'uri redirigé qui n'est rien d'autre que le domaine d'application que vous fournissez lorsque vous créez votre application facebook.

2voto

Kunal Khanna Points 51
If you are using Facebook SDK, you don't need to bother yourself to enter
anything for redirect URI on the app management page of facebook. Just setup a 
URL scheme for your iOS app.
The URL scheme of your app should be a value "fbxxxxxxxxxxx" where xxxxxxxxxxx is
your app id as identified on facebook.
To setup URL scheme for your iOS app, go to info tab of your app settings
and add URL Type.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X