首页 > 解决方案 > 如何使用 Oauth2.0 解码不透明的访问令牌

问题描述

我有一个令牌密钥,其中包含登录的个人电子邮件地址以及名称和其他端点。这实际上用于 xero API 连接。

scope = 'offline_access accounting.reports.read accounting.settings.read openid profile email'

我需要解码此令牌密钥并获取登录的电子邮件地址和登录人的姓名。

例如,我的令牌密钥如下。

b9b73c12b40a3bc1441f5bda331c4d7c64c0394956d5105eec61a71de19f8153

如何解码这个不透明的访问令牌并使用 python 获取相关信息。

标签: pythonoauth-2.0decodeopenid-connect

解决方案


正如 jps 所说,客户端永远不应该直接解码访问令牌。您有以下选择:

从 ID 令牌中读取用户字段

UI 直接读取此 JWT,如我的博客文章的第 18 步。id 令牌始终具有 JWT 格式,旨在供客户端读取

使用用户信息端点

UI 可以使用上述博客文章第 24 步中的消息将访问令牌发送到用户信息端点。

从 API 获取用户信息

这往往是最可扩展的选项,因为您可以返回任何您想要的信息,并且您不限于访问令牌中包含的内容。博文的第 27 步使用此选项。


推荐阅读