繁体   English   中英

oauth2重定向url如何用于桌面应用程序?

[英]How does oauth2 redirect url work for desktop applications?

对于使用桌面应用程序的人,他们如何处理需要重定向URL的第三方服务的oauth2流?

我想通过Discord的oauth2登录名对用户进行身份验证。 但是我正在开发一个桌面应用程序,其背后没有任何网络服务。

我已经阅读了有关重定向方案的内容,

urn:ietf:wg:oauth:2.0:oob

但是Discord表示,这是通过oauth2登录后的不匹配重定向网址

如果您使用桌面应用程序,则有两种选择:

  1. 您可以在本地启动Web服务器,并将localhost用作redirectUri。 缺点是您通常还需要在允许的重定向Uris列表中提供端口号,并且您不必知道客户端上是否有特定端口可用。
  2. urn:ietf:wg:oauth:2.0:oob指示服务器根本不要重定向用户,而是在浏览器窗口标题中输出代码。 如果您具有阅读其他Windows标题的适当权限,则可以在那里自动检测更改。 此外,通常还会向用户显示代码,以便作为后备用户,他可以将代码复制并粘贴到您的应用程序中。 但是,您的服务可能不支持此功能。
  3. 设置一个为您转发令牌的Web服务。 基本上,您设置了一个Web服务,您的应用程序将通过该Web服务进行身份验证,并且该Web服务将URL返回到身份验证服务,其中包括向您发送用户的适当state 然后,身份验证服务会将您的用户送回到您的Web服务,该服务再次通过长轮询,Web套接字或在整个过程中保持打开状态的真实TCP连接的方式将代码报告给您的应用程序。 请注意,该Web服务将需要仔细设计,以便该服务不会被第三方滥用。 由于您不能从技术上针对Web服务对桌面应用程序进行身份验证,因此您无法阻止其他应用程序调用您的Web服务,但是您可以在同意屏幕上向用户显示一些信息,以帮助用户识别请求是否合法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM