【问题标题】:How to revoke a token in Discord OAuth2.0?如何撤销 Discord OAuth2.0 中的令牌?
【发布时间】:2020-09-04 13:34:34
【问题描述】:

为了使用 Discord 的 API,我需要一个令牌,并打开一个链接,例如 https://discordapp.com/api/oauth2/authorize?client_id=<client_id>&redirect_uri=<redirect_url>&response_type=token&scope=identify

然后我将令牌设置为发出给 Discord API 的请求的 authorization(格式为 Bearer <token>)标头。

假设我想“注销”,这样就不能再使用某个令牌来执行此类请求。在这种情况下,我必须撤销该令牌,对吧?

所以在阅读了 Discord 的文档并进行了一些调整后,我决定我必须向 URL 发出 POST 请求,例如 https://discordapp.com/api/oauth2/token/revokecontent-type这个请求的header应该设置为x-www-form-urlencoded

当我这样做时,我从 discord 的服务器收到一条错误消息,其中包含 {error: "invalid_client"} 的消息

我做错了什么?

【问题讨论】:

    标签: oauth-2.0 discord bearer-token


    【解决方案1】:

    所以问题在于我发送的数据的实际格式。我正在发送 JSON 数据,因为我认为设置特定的标头会自动将数据转换为正确的格式,但事实证明我必须使用 FormData 对象以正确的格式创建数据,之后我还删除了我明确设置标题的行,在这些步骤之后一切正常。

    【讨论】:

    • 你能解释一下你是怎么做到的吗?我也在研究它,无法弄清楚。
    • @GaborSzita 我现在没有代码,但您可以简单地用谷歌搜索 FormData 示例。 FormData 应该使用 new 关键字创建。让数据 = 新的 FormData();等等。然后你可以添加你的 key:value 对,然后你可以发送它
    【解决方案2】:

    如果您遇到这个问题并且想知道撤销令牌的完整 API 调用是什么,这里是:

    POST https://discord.com/api/oauth2/token/revoke
    Content-Type: application/x-www-form-urlencoded
    data:
      client_id: <client_id>
      client_secret: <client_secret>
      token: <access_token>
    

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      相关资源
      最近更新 更多