java - 如何使用 Java 通过 OAuth 流从 Reddit 检索访问令牌
问题描述
但我真的不知道从这里做什么?我在网上找到了一些指南,但这只是我不太了解的很多行话。当我单击“允许”按钮时,它会将我带到我定义为 my 的 url,redirect_uri
并附加到字符串的末尾是state
我设置的那个code=
,然后是一个字符串 - 所以我假设我需要用这些做点什么,但我不知道是什么。
我想知道是否有一个超级简单的“像我 5 岁一样解释”的分步指南来说明从这里做什么?
解决方案
这是一个标准的 OAuth 流程。从文档:
- 当用户单击您网站上的“使用 Reddit 登录”按钮时,您必须将用户重定向到 Reddit 上的授权 URL - 您问题中的那个,从
https://www.reddit.com/api/v1/authorize
您指定的请求参数开始并丰富。Reddit 然后会要求用户登录,以及他是否想要授权您的应用访问所请求的范围。请参阅https://github.com/reddit-archive/reddit/wiki/OAuth2#allowing-the-user-to-authorize-your-application - 如果用户同意,那么 Reddit 会将用户重定向到您在授权 URL 中指定为请求参数的重定向 URI(在您的情况下为
http://localhost:8080/redditimageuploader/callback
)。Reddit 将添加一个state
请求参数:您需要确保这与您的请求中的参数相同。 - 通过对 的 POST 请求检索访问令牌
https://www.reddit.com/api/v1/access_token
,包括您的数据中的以下数据:grant_type=authorization_code&code=CODE&redirect_uri=URI
。将 CODE 替换为您收到的值,将 URI 替换为与第一步相同的重定向 URI。对第三步的响应应该返回一个访问令牌:代表用户存储它以备将来请求。见https://github.com/reddit-archive/reddit/wiki/OAuth2#retrieving-the-access-token
额外的步骤可用并记录在错误处理和访问令牌操作(失效/更新)。
因此,一旦您正确实施了第一步,您需要做的就是创建一个端点(当您的重定向 URI 被重定向到时调用的端点),它将:
- 检查
state
请求参数 - 检索访问令牌(第三步)并存储它
让我知道这是否足够清楚。
推荐阅读
- switch-statement - 除负数时使用绝对值
- c++ - C++ Primer 第 5 版错误 bool 值没有指定最小大小?
- sql - CTE 或不用于计算辅助表中引用的树 id
- python - 多输出回归问题的多重损失
- python - 如何将一个列表中的值添加到另一个列表但前一个列表具有不同数量的元素
- javascript - 在passport.authenticate()内部重定向问题
- html - 桌面上不同的标题布局
- javascript - 音量的反应输入范围滑块不起作用
- javascript - 如何修复 HTML5 画布 globalAlpha 问题?
- java - 发送 ("test", 1.0d) 会导致 Java 8 编译错误、不明确的方法调用 xMethod(String,double...) 与 xMethod(String,Object...)