当前位置: 首页 > 面试题库 >

在Golang中解码JWT令牌

归浩博
2023-03-14
问题内容

我目前正在使用Golang应用程序。我从客户端收到JWT令牌,在Go中,我需要对该令牌进行解码并获取以下信息:用户,名称等。我正在检查可用于处理JWT的库令牌,我来到https://github.com/dgrijalva/jwt-
go
,但我看不到如何简单地制作所需的东西。

我有令牌,我需要将信息解码为地图或至少为json。在哪里可以找到如何做的指南?谢谢!


问题答案:

函数jwt.ParseWithClaims接受jwt.Claims第二个参数的接口。除了基于结构的自定义声明外,该软件包还提供map基于声明的声明,即jwt.MapClaims。因此,您只需将令牌解码为MapClaims,例如

tokenString := "<YOUR TOKEN STRING>"    
claims := jwt.MapClaims{}
token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) {
    return []byte("<YOUR VERIFICATION KEY>"), nil
})
// ... error handling

// do something with decoded claims
for key, val := range claims {
    fmt.Printf("Key: %v, value: %v\n", key, val)
}


 类似资料:
  • 我想解码我使用Postman收到的jwt令牌,并在RESTAPI中实现它。我该怎么做?我看到有人发布代码来解码jwt令牌(参考:如何在不使用库的情况下在javascript中解码jwt令牌?)但我不明白在《邮差》里怎么做?解码jwt需要什么url?需要什么标题、授权?

  • 我使用jsonwebtoken解码我的令牌,看看它是否已过期。但是,控制台.log返回 null。 我不明白,因为我的令牌不为空

  • 我添加了Firebase,允许客户端直接从web应用程序客户端(浏览器)进行身份验证。我正在使用firebase web JS包,它工作得非常好。我可以在浏览器中看到,我收到一个用户对象,其中包含有关该用户的信息,包括。 然后,我需要在我的服务器后端(即python django)上对该用户进行身份验证。在Firebase文档中,我找到了一个我正试图做的操作指南,即验证id令牌。 因为他们没有支持

  • 我一直在使用Charles调试移动应用程序和API之间的通信。 我们现在将客户端(app)和服务器都更改为使用JSON Web令牌(JWT)。 有没有办法配置Charles,以便在浏览请求时对JWT进行解码? 基本上,请求(从移动应用程序到服务器)将由一个包含JWT的标头(授权)组成,当我在Charles中单击该请求时,我想看到: -原始令牌 -解码标头 -解码负载 查看Charles的文档,我发

  • 我有以下代码在Javascript中解码Jwt令牌(参考:如何在Javascript中解码Jwt令牌) 我从上面的代码中得到了我需要的有效负载,但我在节点中实现了它,那里我们没有“atob”函数来解码base64编码的字符串 似乎我们需要在节点中使用缓冲区。我做了研究,提出了下面的解决方案,但不起作用。 请让我知道是否有更好的方法-没有库(Jwt或decode-Jwt)

  • 我不明白这个图书馆是如何工作的。你能帮帮我吗? 以下是我的简单代码: 这是错误: 字符串需要采用紧凑的JSON格式,格式为:Base64UrlEncodedHeader。Base64UrlEndcodedPayload。可选,Base64UrlEncodedSignature'。 如果你复制流在jwt.io网站,它的作品罚款:)