首页 > 解决方案 > 如何从不和谐的oauth获取用户ID

问题描述

你好,所以我设置了一个不和谐的应用程序和 OAUTH 登录。我需要获取用户 ID,但无论我尝试什么都有问题。我读了这个,但这对我来说没有任何意义。它如何知道它是什么用户。它说“401:未经授权”我应该怎么做才能授权。我也得到了访问令牌;刷新令牌谢谢

标签: oauth-2.0discord

解决方案


我有同样的问题,只是想出了解决方案!

成功接收访问令牌后,您需要向以下端点执行 http 请求:

https://discordapp.com/api/users/@me

标题设置为:

Authorization: Bearer ${ACCESS_TOKEN}

然后,您应该会收到以下响应:

data: {
    avatar: ....,
    discrimnator: ....,
    email: ....,
    flags: ....,
    id: ....
}

您还将获得一些其他数据点。但那些是大的。注意:如果您在收到访问令牌时将其包含在范围内,您只会收到电子邮件字段。您可以使用从此调用中收到的 id 来访问 Discord 文档中引用的 users/:userId 端点。

如果您有兴趣,这是我的实际代码:

fetchUser: (data) =>
      axios
        .get(
          `https://discordapp.com/api/users/@me`,
          {headers: {Authorization: `Bearer ${data.access_token}`}}
        )

希望有帮助!


推荐阅读