使用 oauth2 从 Discord API 获取信息

Posted

技术标签:

【中文标题】使用 oauth2 从 Discord API 获取信息【英文标题】:Get Infos from Discord API using oauth2 【发布时间】:2020-12-07 15:17:17 【问题描述】:

首先,我对 Angular 10.0 和 oauth2 非常陌生,所以我正在努力学习,如果听起来很愚蠢,请提前道歉。

我的目标是至少获得使用不和谐登录的人的用户名。为此,我使用this library

  const authConfig: AuthConfig = 
  loginUrl: `https://discord.com/api/oauth2/authorize`,
  tokenEndpoint: 'https://discord.com/api/oauth2/token',
  redirectUri: `http://localhost:4200`,
  clientId: 'myId',
  scope: 'identify',
  responseType: 'code',
  strictDiscoveryDocumentValidation: false,
  oidc: false,
  disablePKCE: false
;
this.oauthService.configure(authConfig);
this.oauthService.tryLoginCodeFlow();

connect()
this.oauthService.initLoginFlow();

所以这部分工作得很好,我得到了 AccessToken,然后我尝试获取任何信息,例如:console.log(this.oauthService.loadUserProfile());

我收到此错误:加载用户信息时出错 TypeError: req.url is null

所以我想知道我是否必须做其他事情才能连接到 API 以从中获取信息,但我不知道我可能是什么。

最好的问候。

【问题讨论】:

【参考方案1】:

我解决了我的问题,

discord API 的问题是它不使用 OpenId Connect。

但是我不得不使用 GET 请求来 apiLink+'/users/@me' 同时将我的 accessToken 设置为授权部分。

https://discord.com/developers/docs/resources/user#get-current-user

【讨论】:

以上是关于使用 oauth2 从 Discord API 获取信息的主要内容,如果未能解决你的问题,请参考以下文章

Discord API - 传回生成的 OAuth2 代码的随机“无效代码”错误

discord oauth2 api 调用返回“405:不允许的方法”

向 Discord API 发送 OAuth2 请求时的 invalid_client

Discord Oauth2 访问令牌“不支持授予类型无”

如何撤销 Discord OAuth2.0 中的令牌?

OAuth2:Discord API 总是以 "error": "invalid_grant" 响应