什么是重定向URI?它如何应用于OAuth2.0的iOS应用程序?

时间:2012-11-08 01:22:37

标签: ios authentication uri oauth-2.0

初学者程序员请原谅无知&解释将是非常好的:))

我已经尝试阅读某个OAuth 2.0服务的教程,但我不理解这个重定向URI ...在我的特定上下文中,假设我正在尝试构建一个使用OAuth 2.0的iPhone应用程序一些服务。我有一个生成的应用程序ID,但我需要提供某种重定向URI来生成API密钥。

这是一个我应该自己托管的网址吗?顾名思义,我认为重定向URL应该在某个地方“重定向”某人。我唯一的猜测是,这是用户登录服务后重定向到的URL。

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

4 个答案:

答案 0 :(得分:185)

阅读本文:

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

重定向URI是应用程序的回调入口点。想想OAuth如何运作 - 在最终用户接受权限之后,Facebook必须调用“某些东西”才能回到应用程序,并且“某些东西”是重定向URI。此外,重定向URI应该与应用程序的初始入口点不同。

此难题的另一个关键点是您可以从提供给webview的网址启动您的应用。要做到这一点,我只是按照这里的指南:

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标识符。

答案 1 :(得分:8)

看看OAuth 2.0 playground.You将会对协议进行概述。它基本上是一个环境(就像任何应用程序一样),它向您展示协议中涉及的步骤。

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

答案 2 :(得分:7)

重定向的uri是用户在成功登录您的应用后重定向的位置。例如,要在Facebook中为您的应用获取访问令牌,您需要提交重定向的uri,这不仅是您在创建Facebook应用时提供的应用域。

答案 3 :(得分:2)

如果您使用的是Facebook SDK,则不需要打扰自己进入 在Facebook的应用管理页面上重定向URI的任何内容。只需设置一个 适用于iOS应用的网址计划。 您的应用的网址方案应为值" fbxxxxxxxxxxx"其中xxxxxxxxxxx是 您在Facebook上标识的应用ID。 要为iOS应用设置网址方案,请转到应用设置的信息标签 并添加URL类型。