【问题标题】:How to retrieve access token from Reddit via OAuth flow with Java如何使用 Java 通过 OAuth 流从 Reddit 检索访问令牌
【发布时间】:2021-06-20 23:07:39
【问题描述】:

我有我的授权网址 - https://www.reddit.com/api/v1/authorize?client_id=xuJKekGTr1-V8Q&response_type=code&state=dfDfsd4gdf&redirect_uri=http://localhost:8080/redditimageuploader/callback&duration=permanent&scope=submit

但我真的不知道从这里做什么?我在网上找到了一些指南,但这只是我不太了解的很多行话。当我点击“允许”按钮时,它会将我带到我定义为我的redirect_uri 的 url,并附加到字符串末尾的是我设置的state,以及code=,然后一个字符串 - 所以我假设我需要对这些做点什么,但我不知道是什么。

我想知道是否有一个超级简单的“像我 5 岁一样解释”的分步指南来指导从这里开始做什么?

【问题讨论】:

    标签: java oauth reddit


    【解决方案1】:

    这是一个标准的 OAuth 流程。 From the doc :

    1. 当用户单击您网站上的“使用 Reddit 登录”按钮时,您必须将用户重定向到 Reddit 上的授权 URL - 您问题中的那个 URL,以 https://www.reddit.com/api/v1/authorize 开头并使用您指定的请求参数进行丰富.然后 Reddit 将要求用户登录,以及他是否要授权您的应用访问所请求的范围。见https://github.com/reddit-archive/reddit/wiki/OAuth2#allowing-the-user-to-authorize-your-application
    2. 如果用户同意,Reddit 会将用户重定向到您在授权 URL 中指定为请求参数的重定向 URI(在您的情况下为 http://localhost:8080/redditimageuploader/callback)。 Reddit 将添加一个state 请求参数:您需要确保这与您的请求中的参数相同。
    3. 通过对https://www.reddit.com/api/v1/access_token 的POST 请求检索访问令牌,在您的数据中包括以下数据: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 被重定向到时调用的端点),它将:

    1. 检查state请求参数
    2. 检索访问令牌(第三步)并存储它

    让我知道这是否足够清楚。

    【讨论】:

      猜你喜欢
      • 2019-01-17
      • 2021-01-10
      • 1970-01-01
      • 2013-02-23
      • 2017-06-23
      • 1970-01-01
      • 2014-09-04
      • 2015-05-28
      • 1970-01-01
      相关资源
      最近更新 更多