【发布时间】:2020-05-03 20:04:31
【问题描述】:
我正在使用 Golang 和 Gin 框架从客户端发送的 JWT 中获取声明。但我无法将提取的角色与字符串进行比较。
当我尝试获取值时,它返回[test-app]
但实际上我希望值为"test-app"
token, _, err := new(jwt.Parser).ParseUnverified(tokenString, jwt.MapClaims{})
if err != nil {
fmt.Println(err2)
return
}
if claims, ok := token.Claims.(jwt.MapClaims); ok {
chkRoles := claims["roles"]
if chkRoles == "test-app" {
fmt.Println("Check Roles passed")
}
}
和我的有效负载
{
"roles": [
"test-app"
],
"exp": 1811749673,
"client_id": "testapp"
}
如何从 json 声明中获取值并使用它与字符串进行比较/验证?
【问题讨论】:
-
chkRoles是一个切片,将它与字符串进行比较几乎没有意义。