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


184

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

我试图阅读某些OAuth 2.0服务的教程,但我不理解此重定向URI ...在我的特定情况下,假设我正在尝试构建将OAuth 2.0用于某些服务的iPhone应用。我有一个已生成的应用程序ID,但是我需要提供某种重定向URI才能生成API密钥。

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

但是,即使这个假设是正确的,我也不了解另一件事-将我的应用程序发送到浏览器进行用户登录后,如何再次打开我的应用程序?

Answers:


193

读这个:

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 for Facebook的工作原理-最终用户接受权限后,Facebook必须调用“某事”才能返回到应用程序,而“某事”就是重定向URI。此外,重定向URI应该与应用程序的初始入口点不同。

这个难题的另一个关键点是,您可以从提供给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方案的名称,并以我的公司作为URL标识符。


1
因此,您确实需要设置redirect_uri中提供的自己的网站,对吗?
huggie 2014年

1
@huggie在iOS应用程序的上下文中-幸运的是,您不需要自己的网站。您只需要意识到可以通过提供给网络浏览器的URL打开iOS应用。阅读:iosdevelopertips.com/cocoa/...
大卫吨

1
@Nazerke可能已经为您添加了“://”。因此,您只需要计划名称
David T.

1
有人请解决这个问题的答案- architecture-soa-bpm-eai.blogspot.com.br/2012/08/...不存在了
狮子座

2
嗨,@ DavidT。好答案。他们只关心并且希望您能救我,是如何为被迫使用的URI配置方案http://,例如[YouTube, Instagram, LinkedIn]?我尝试注册例如http://localhost/oauth2callback重定向,以及方案http,localhost或oauth2callback,但它们都不起作用
Tal Zion

9

重定向的uri是成功登录到您的应用后将重定向用户的位置。例如,要在Facebook中获取应用程序的访问令牌,您需要对重定向的uri进行subimt重定向,uri不仅是您在创建Facebook应用程序时提供的应用程序域。



2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.