ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

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


H
Halalbin

读这个:

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 应该不同于应用程序的初始入口点。

这个难题的另一个关键点是,您可以从提供给 web 视图的 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 中设置您自己的网站,对吗?
@huggie 在 iOS 应用程序的上下文中 - 不,幸运的是,您不需要自己的网站。您只需要意识到您的 iOS 应用程序可以从提供给 Web 浏览器的 URL 打开。阅读:iosdevelopertips.com/cocoa/…
@Nazerke 它可能已经为您添加了“://”。所以你只需要计划名称
有人请修复这个答案 - architecture-soa-bpm-eai.blogspot.com.br/2012/08/… 不再存在
嗨@DavidT。很好的答案。他们只关心,希望你能救我,是如何为强制使用 http:// 的 URI 配置方案,例如 [YouTube, Instagram, LinkedIn] ?我尝试注册例如 http://localhost/oauth2callback 重定向,以及 http、localhost 或 oauth2callback 方案,但它们都不起作用
R
Reckoner

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

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


D
Dhirender Tyagi

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


D
Dániel Nagy

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