gpt4 book ai didi

java - 通过手册获取 Dropbox 授权码 "copy and paste"

转载 作者:行者123 更新时间:2023-12-01 11:07:39 25 4
gpt4 key购买 nike

我正在开发一个无状态 REST API,我需要集成 Dropbox 登录机制,如下所述:https://www.dropbox.com/developers/core/start/java

我面临的主要问题是获取授权码。简而言之,由于应用程序的无状态性质(无 session ),我无法使用 DbxWebAuth 方法。并陷入使用:

DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo);

虽然生成了代码,但没有回调,用户必须在允许后从 Dropbox 页面“复制并粘贴”授权代码。有没有办法自动化这个过程?

我的主要目标是获取授权代码并将其发送回 API,例如 http://my-website.com/dropbox?authorization_code={authorization_code}

最佳答案

要将授权代码传回您的应用,您需要使用带有重定向 URI 的 OAuth 2 流程。在 Dropbox Java Core SDK 中,这需要您使用 DbxWebAuth。然而,DbxWebAuth 实现要求您提供非空 DbxSessionStore 作为 constructor 中的 csrfTokenStore 参数。 .

用于防止cross-site request forgery攻击,根据 Dropbox /oauth2/authorize documentation ,它链接到 OAuth 2 规范的相关部分以供引用。

也就是说,/oauth2/authorize 上的 state 参数(将在其中提供 CSRF token )不是必需的,因此在技术上可以使用带有重定向 URI 的代码流不提供状态。可以说,不建议这样做,Dropbox Java Core SDK 也不支持这样做。如果您确实需要这样做,您可以手动实现它,使用允许它的不同库,或者修改 Dropbox Java Core SDK。请注意,这样做可能会使您的应用面临跨站点请求伪造攻击。

关于java - 通过手册获取 Dropbox 授权码 "copy and paste",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774826/

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