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

问题描述 投票:163回答:4

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

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

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

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

ios authentication uri oauth-2.0
4个回答
187
投票

读这个:

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


8
投票

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

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


7
投票

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.