gpt4 book ai didi

OAuth2 变量 redirect_uri

转载 作者:行者123 更新时间:2023-12-03 17:52:28 24 4
gpt4 key购买 nike

我们正在编写一个与 OAuth2 api 集成的插件。

棘手的部分是我们不能像在大多数集成中那样对重定向 URI 进行硬编码,因为客户端可以在他们控制的任何域上安装这个插件(想想 Wordpress 插件),并且访问 token 需要重定向回他们的自定义 url。

我们看到您可以设置 state参数也在 OAuth2 中。所以我们可以将重定向 URI 硬编码为 http://oursite.com/callback并将状态设置为 https://[CUSTOM_URL] .

然后http://oursite.com/callback将额外重定向到自定义 URL,传递访问 token 。

然而,这似乎是一个安全漏洞,因为一旦用户对应用程序进行了身份验证,其他人可能会出现并使用他们自己在 state 中的 URL 重新进行身份验证。参数。然后它会很高兴地重定向到他们的错误 url 并将访问 token 传递给他们。

那么人们如何设置重定向 uri 可以变化的 OAuth2 集成呢?谢谢!

附言我们想到的一种解决方案是只允许 state如果重定向 uri 是我们控制的 url,则使用参数。然后我们可以创建另一个验证页面,再次提示用户:“您要允许 https://customurl.com 访问您的帐户...”。但我们认为可能有更好的方法。

最佳答案

对于动态客户端地址,可能值得考虑使用基于 localhost 的重定向 URI。这听起来可能违反直觉,但由于 OAuth2 是基于浏览器/httpclientlib 的协议(protocol),因此它可以工作。来自服务器授权端点的重定向是由您自己的浏览器完成的,因此 localhost 作为 redirect_uri 始终可以正确解析。因此,无论您在何处部署应用程序,您仍然可以修复 redirect_uri。

该解决方案也有其含义,您应该考虑架构和安全后果。基于 localhost 的 redirect_uri 非常适合隐式授权场景(即 javascript 客户端),但我认为对于授权代码授权场景(即远程 Web 应用程序),您应该使用可远程访问的主机名。

关于OAuth2 变量 redirect_uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com