如何获取不和谐 oauth2 隐式授权的范围值?

Posted

技术标签:

【中文标题】如何获取不和谐 oauth2 隐式授权的范围值?【英文标题】:How do I get the scope values of a discord oauth2 implicit grant? 【发布时间】:2021-04-02 11:50:27 【问题描述】:

我已经建立了一个不和谐机器人,现在想为它建立一个网站。我已经设法使用 discord oauth2 设置了一个隐式授权,但是我不知道如何获取我的任何范围值(身份、电子邮件、行会、机器人)。我所拥有的只是访问令牌、令牌类型、过期时间、公会 ID 和范围,它们都列在 url 中。请帮忙!!!!

【问题讨论】:

【参考方案1】:

您需要拨打GetCurrentUser Api

这是一个 GET 到 https://discord.com/api/users/@me

您必须使用令牌传递授权标头。

编辑

javascript 中,这段代码应该可以完成工作:

fetch('https : //discord.com/api/users/@me', 
  method: 'GET',
  headers: 
    'Authorization': jwtToken,
  
)
.then(res => res.json())
.then(data => 
  console.log(data);
);

或异步版本:

async getUserInfo() 
 const response = await fetch('https://discord.com/api/users/@me', 
   method: 'GET',
   headers: 
     'Authorization': jwtToken,
   
 );
 var data = await response.json();
 console.log(data);


getUserInfo();

【讨论】:

我认为这可能有效,但是如何使用令牌传递授权标头?您能否添加一个代码示例以进行实施?是的,我不知道自己在做什么。 又是如何整合json和html的? 使用 javascript,您可以只使用 fetch(或外部库,如 axsios)。看看编辑 非常感谢【参考方案2】:

您要查找的值应设置为令牌中的声明。

尝试将令牌粘贴到https://jwt.io/

【讨论】:

它们没有被设置为声明,除非我解码错误。

以上是关于如何获取不和谐 oauth2 隐式授权的范围值?的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 2 中隐式授权类型的目的是啥?

在 Oauth2 隐式授权流和第 3 方 cookie 中刷新令牌

discord Oauth2 访问令牌未定义

OAuth2 服务器的范围值是啥?

什么是正确的授权码 OAuth2 流程?

如何保护来自iframe的Oauth2隐式流