带有哈希查询字符串的OAuth2,Imgur API

问题描述 投票:0回答:1

我将更新本地桌面应用程序(一个Imgur客户端),以用于即将弃用的代码/密码身份验证方法,方法是在用户授权访问该应用程序后,使用本地Web服务器从浏览器中捕获redirect_url。因此,我在浏览器中启动了URL,用户接受了,然后Imgur重定向到

http://localhost:7710/myapp?state=auth#access_token=....&expires_in=

但是浏览器在#处截断了URL,因此所有变量都丢失了,我的应用仅收到“ state = auth”

摘自Imgur的API文档:

response_type参数令牌:此授权流程将通过重定向直接返回access_token和refresh_token您在注册期间指定的URL,采用哈希查询的形式字符串参数。例:http://example.com#access_token=ACCESS_TOKEN&token_type=Bearer&expires_in=3600

代码和引脚响应类型已被弃用,不久将不会不再受支持。

如果用户同意,Imgur将访问令牌返回到您的应用程序您的应用程序所请求的权限。访问令牌是作为片段的一部分返回给您的应用程序access_token参数。由于一个片段(URL之后的部分#)没有发送到服务器,客户端javascript必须解析片段并提取access_token参数的值。

很显然,他们还没有为桌面应用程序考虑过这一点,还是我缺少了什么?

oauth-2.0 imgur
1个回答
1
投票
Imgur的东西看起来是非标准的,因为response_type = token是隐式流的基本版本,它过去曾是单页pps的解决方案。

这些天,所有基于UI的流都应使用授权码流(PKCE)和response_type = code。

由于您的应用程序充当(回送)Web服务器,因此它将不会接收哈希片段参数,这些参数仅适用于在浏览器中运行的JavaScript代码。

使您能够获取完整URL的一个选项是通过系统浏览器登录并使用Private URI Scheme回调应用程序。

上面的链接是一个视觉博客文章,以解释它是如何工作的,如果有兴趣的话。

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