我正在将Dropbox支持集成到我的应用程序中,并且为了获取用户帐户的访问令牌,我使用了他们的OAuth2流程。在用户授予应用程序访问权限后,我需要将用户重定向到它来自的相同URL。问题是用户可能来自多个子域中的任何一个,并且我无法完全控制这些子域,这意味着我无法将它们全部添加到我的Dropbox应用设置中的重定向URL列表中。
我以为我会通过在www子域下设置一般重定向网址来解决这个问题,而后者会重定向到正确的网址。但是,似乎没有任何方法可以发送Dropbox将包含在重定向URL中的自定义数据。我使用YouTube的OAuth2 API进行了精简定位,它们允许您在state
查询参数中发送自定义数据,重定向时将包含该参数。但这似乎不允许Dropbox。有谁知道有没有办法做到这一点?
由于
答案 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。