【问题标题】:OAuth2 how redirect with lack of placeholder?OAuth2如何在缺少占位符的情况下重定向?
【发布时间】:2015-03-11 22:43:50
【问题描述】:

我在BufferApp上创建了一个APP。

在重定向 URL 中,我确实插入了我的主域 (http://www.example.com/get_token)。

在这种模式下,我可以为多个具有不同 URI 的网站重复使用相同的 APP,而无需为每个网站创建一个 APP 或复制/粘贴令牌(在 Oauth2 中,您需要指定重定向 URI)。

对于 Facebook、Twitter、Instagram 和其他一些我遵循相同的模式。

NEW_SITE_TO_AUTHORIZE = > 
Oauth2 Provider = > 
MAIN and DIFFERENT DOMAIN THE ONLY ONE WITH THE LOGIC = >
redirect to NEW_SITE_TO_AUTHORIZE

通过 GET 转移代币。某些服务提供了一些“占位符”,我在其中插入“要授权的新站点”的 URL,并在获取代码后重定向到它。

使用 BufferApp,我确实尝试附加另一个查询字符串 ("&return=..."),但它在“途中”丢失了。

你有什么办法绕过这个问题吗?

【问题讨论】:

    标签: php oauth-2.0


    【解决方案1】:

    好的,我找到了一个在域之间保持价值的 GET “状态”。我在这里写给有同样问题的人。

    所以网址在这里:

    GET https://bufferapp.com/oauth2/authorize?
        client_id=...&
        redirect_uri=...&
        response_type=code
    

    可能是:

    GET https://bufferapp.com/oauth2/authorize?
        client_id=...&
        redirect_uri=...&
        response_type=code&
        state=RETURN_URL
    

    【讨论】:

    • state 值用于防止 CSRF 攻击。使用固定值而不是随机值会降低应用程序的安全性。
    • 你说得对,我确实读过关于.. 但由于缺少占位符,这是唯一的解决方法。也许可以添加一个唯一的代码+ URL(例如 123ab|http:// 并作为响应删除 url ......但我的逻辑仅通过来自确切 IP && 域的调用授权 APP ......所以没有必要 atm CSRF 令牌;)
    • 我仍然不明白你首先需要一个“占位符”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2016-12-02
    • 2012-12-06
    • 2017-07-06
    • 2017-02-16
    相关资源
    最近更新 更多