如何解决如何使用Oauth2.0解码不透明的访问令牌
我有一个令牌密钥,其中包含已登录的人的电子邮件地址以及名称和其他端点。这实际上是在xero API连接中使用的。
scope = 'offline_access accounting.reports.read accounting.settings.read openid profile email'
我需要解码此令牌密钥,并获取登录的电子邮件地址和登录人员的姓名。
例如,我的令牌密钥如下。
b9b73c12b40a3bc1441f5bda331c4d7c64c0394956d5105eec61a71de19f8153
如何解码不透明的访问令牌并使用python获取相关信息。
解决方法
如jps所述,客户端永远不应直接解码访问令牌。您有以下选择:
从ID令牌读取用户字段
UI像Step 16 of my blog post一样直接读取此JWT。 id令牌始终为JWT格式,旨在供客户端读取
使用用户信息点
UI可以使用上述博客文章的步骤22中的消息将访问令牌发送到User Info端点。
从API获取用户信息
这通常是最可扩展的选项,因为您可以返回所需的任何信息,并且您不仅限于访问令牌中包含的内容。博客文章的第25步使用此选项。
,const token = req.headers.authorization.split(" ")[1]; //Bearer +token
const decodedToken = jwt.verify(token,"secret_message_long_string");
req.userData = { email: decodedToken.email,userId: decodedToken.userId };
此示例用于解码nodejs的数据。
在python中尝试相同的方法。导入jwt并使用verfiy方法传递令牌和秘密字符串作为参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。