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

Send custom data in Dropbox OAuth redirect URL

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

我想我可以通过在 www 子域下进行一般重定向 URL 来解决这个问题,这反过来又会重定向到正确的 URL。但是,似乎没有任何方法可以发送 Dropbox 将包含在重定向中的自定义数据 URL。我已经使用 YouTube 的 OAuth2 API 进行了实验,它们允许您在 state 查询参数中发送自定义数据,重定向返回时将包含这些数据。但这似乎不允许用于 Dropbox。有谁知道有没有办法做到这一点?

谢谢

如果 Dropbox 不遵守 state 参数(并且违反规范这样做),唯一的选择是确保自定义域也重定向到通用域,然后再开始对 Dropbox 的身份验证,然后将自定义 URL 存储在与重定向 URL 位于同一通用域中的 cookie 中。然后,您可以从 Dropbox return 上的 cookie 中提取 state/custom URL。

Dropbox 支持 state 参数(最多 500 字节,请参阅 /1/oauth2/authorize), and you can set arbitrary state in the Python SDK using DropboxOAuth2Flow.start 的文档。

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