OAuth重定向非Web应用程序的URI替代方案?

时间:2016-11-01 20:06:12

标签: redirect oauth oauth-2.0 response google-oauth2

处理OAuth身份验证的重定向URI的最佳方法是什么?

在一些项目中,我曾经启动了一个等待身份验证被发回的Web服务器。有没有办法在没有本地Web服务器的情况下触发任何类型的代码,或者它是推荐的方式吗?

我不是要求任何特定语言的帮助,这更像是一个与语言无关的问题。

1 个答案:

答案 0 :(得分:3)

旁注:好的头像...... :)

决定最佳方法取决于具体情况以及您的应用程序可能具有的任何其他要求,但是,我们可以查看一些选项以及选择它们的可能含义。

OAuth 2.0 specification建议使用嵌入式用户代理或依赖外部用户代理来解决此问题的一些选项。

嵌入式用户代理可以让您更好地控制UI方面,但是,通过利用外部用户代理,您的用户可以从已经建立的会话中受益,并避免再次输入凭据。

对于外部用户代理,我们有几个选择:

  

外部用户代理 - 本机应用程序可以使用(1)重定向URI从授权服务器捕获响应,并在操作系统中注册方案以调用客户端作为处理程序,< strong>(2)手动复制和粘贴凭据,(3)运行本地Web服务器,(4)安装用户代理扩展,或者(5)在客户端的控制下提供标识服务器托管资源的重定向URI,从而使响应可用于本机应用程序。

选项1:

使用应用程序在操作系统中注册的自定义方案配置重定向,这样当外部用户代理收到指示重定向到您的方案的响应时,将调用您的应用程序。

选项2:

您重定向到只显示包含代码的漂亮页面的某个位置,并要求用户在您的应用程序中手动输入。

选项3:

您已经使用过这个,基本上应用程序启动本地Web服务器,您将重定向配置为http://localhost:[port]/的行。

选项4:

通过安装用户代理扩展,您可以使用浏览器运行代码,该代码可以自动将代码传递给您的应用程序。

选项5:

您配置重定向URI,该URI指向您托管的某些服务器端代码以及您的客户端Android应用程序知道的内容,以便它可以从该URL获取代码。

有关此主题的更多信息,请查看:OAuth 2.0 for Native Apps

另外,如果您不想在服务器上需要某些逻辑的选项上使用完整服务器端,则可以通过将服务器端逻辑写为as来使用更少的代码行完成相同的操作。 Webtask {确保使用自定义域名。)

披露:我是Auth0工程师。