在Dropbox OAuth重定向网址中发送自定义数据

时间:2015-06-23 11:16:48

标签: oauth-2.0 dropbox

我正在将Dropbox支持集成到我的应用程序中,并且为了获取用户帐户的访问令牌,我使用了他们的OAuth2流程。在用户授予应用程序访问权限后,我需要将用户重定向到它来自的相同URL。问题是用户可能来自多个子域中的任何一个,并且我无法完全控制这些子域,这意味着我无法将它们全部添加到我的Dropbox应用设置中的重定向URL列表中。

我以为我会通过在www子域下设置一般重定向网址来解决这个问题,而后者会重定向到正确的网址。但是,似乎没有任何方法可以发送Dropbox将包含在重定向URL中的自定义数据。我使用YouTube的OAuth2 API进行了精简定位,它们允许您在state查询参数中发送自定义数据,重定向时将包含该参数。但这似乎不允许Dropbox。有谁知道有没有办法做到这一点?

由于

2 个答案:

答案 0 :(得分:2)

Dropbox支持state参数(最多500个字节,请参阅/1/oauth2/authorize的文档),您可以使用DropboxOAuth2Flow.start在Python SDK中设置任意状态。

完成OAuth流程并调用DropboxOAuth2Flow.finish后,您传入的状态将作为元组的第三个成员返回。

答案 1 :(得分:1)

如果Dropbox不尊重state参数(并且违反规范),唯一的选择是确保自定义域重定向到常规域,然后再向Dropbox启用身份验证,然后将自定义URL存储在与重定向URL位于同一通用域的cookie中。然后,您可以从Dropbox返回时从cookie中获取状态/自定义URL。