190

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

我试图阅读某个 OAuth 2.0 服务的教程,但我不理解这个重定向 URI ...... . 我有一个生成的 App ID,但我需要提供某种重定向 URI 来生成 API 密钥。

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

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

4

4 回答 4

197

读这个:

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 是应用的回调入口点。想想 Facebook 的 OAuth 是如何工作的——在最终用户接受权限后,Facebook 必须调用“某物”才能返回应用程序,而“某物”就是重定向 URI。此外,重定向 URI 应该不同于应用程序的初始入口点。

这个难题的另一个关键点是,您可以从提供给 webview 的 URL 启动您的应用程序。为此,我只是按照此处的指南进行操作:

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

http://incho.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 标识符。

于 2012-11-09T13:28:50.313 回答
10

看看 OAuth 2.0 playground。您将获得协议的概述。它基本上是一个环境(与任何应用程序一样),向您展示协议中涉及的步骤。

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

于 2015-09-03T11:51:58.987 回答
9

重定向的 uri 是用户成功登录到您的应用后将被重定向的位置。例如,要在 facebook 中获取您的应用程序的访问令牌,您需要提交重定向的 uri,这只是您在创建 facebook 应用程序时提供的应用程序域。

于 2014-05-30T07:20:02.927 回答
2

如果您使用的是 Facebook SDK,则无需费心在 facebook 的应用管理页面上输入任何重定向 URI。只需为您的 iOS 应用程序设置一个 URL 方案。您的应用程序的 URL 方案应该是一个值“fbxxxxxxxxxxx”,其中 xxxxxxxxxxx 是您在 facebook 上标识的应用程序 ID。要为您的 iOS 应用设置 URL 方案,请转到应用设置的信息选项卡并添加 URL 类型。

于 2014-06-25T12:08:05.873 回答