什么是redirectURI? 它如何适用于OAuth2.0的iOS应用程序?

初学者程序员在这里,请原谅无知和解释将是非常好的:)

我已经尝试阅读某个OAuth 2.0服务的教程,但我不明白这个redirectURI …在我的特定上下文中,假设我正在尝试构build一个使用OAuth 2.0进行某些服务的iPhone应用程序。 我有一个生成的应用程序ID,但我需要提供某种types的redirectURI来生成API密钥。

这是一个我应该在什么地方托pipe的URL? 顾名思义,我认为redirecturl应该是“redirect”某处的某个人。 我唯一的猜测是这是用户login到服务后redirect到的URL。

然而,即使这个假设是正确的,我不明白另一件事 – 我的应用程序如何将它们发送到浏览器以供用户login后再次打开?

读这个:

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

或者更简单但快速的解释:

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

redirectURI是应用程序的callback入口点。 想想Facebook的OAuth是如何工作的 – 在最终用户接受权限之后,Facebook必须调用“某些东西”才能回到应用程序,而“something”是redirectURI。 此外,redirectURI应该与应用的初始入口点不同。

这个难题的另一个关键点是, 你可以从一个给webview的URL启动你的应用程序 。 要做到这一点,我只是按照这里的指导:

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

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

注意:在最后2个链接中,“http://”在打开移动Safari中工作,但“tel://”在模拟器中不起作用

在第一个应用程序,我打电话

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

在我的第二个应用程序中,我注册了“secondApp”(而不是“secondApp://”)作为URL Scheme的名称,我的公司作为URL标识符。

redirect的uri是成功login到应用程序后用户将被redirect的位置。 例如,要在Facebook中获取访问令牌,您需要redirect的URI,这不是您在创buildFacebook应用程序时提供的应用程序域。

看看OAuth 2.0游乐场。你会得到一个协议的概述。它基本上是一个环境(像任何应用程序),向您展示了协议涉及的步骤。

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

如果您正在使用Facebook SDK,则无需在Facebook的应用pipe理页面上自行input任何redirectURI。 只需为您的iOS应用程序设置一个URLscheme。 您的应用程序的URLscheme应该是一个值“fbxxxxxxxxxxx”,其中xxxxxxxxxxx是您在Facebook上标识的应用程序ID。 要为iOS应用设置urlscheme,请转到应用设置的“信息”标签,然后添加urltypes。