如何在 go fiber 中访问以下 json 值?

这是我写的代码。当我使用token.Claims方法时,它返回以下结果。而且我还需要访问电子邮件值以检查用户是谁。当我使用token.Claims.Email它时会引发错误。


func User(c *fiber.Ctx) error {

    cookie := c.Cookies("jwt")

    claims := jwt.MapClaims{}

    token, _ := jwt.ParseWithClaims(cookie, claims, func(token *jwt.Token) (interface{}, error) {

        return []byte(SecretKey), nil

    })


    return c.JSON(token.Claims)

}

这是邮递员的回应。如何访问以下电子邮件地址


月关宝盒
浏览 111回答 1
1回答

GCT1015

通过检查您的代码,我猜您正在使用这个golang-jwt包。调用后,jwt.ParseWithClaims您应该能够访问您对代码中jwt.MapClaims命名的已创建对象的声明。claims没有 Fiber 的例子,只有 golang-jwt,但逻辑保持不变:package mainimport (    "fmt"    "github.com/golang-jwt/jwt/v4")// Created on https://jwt.io/const tokenString = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RAbWFpbC5jaCJ9.Iv6oZWIX7Rrtag4d6h3-eJ3xdXLwoZ9PbotcvbjOvhI"// Just as an example, make sure to pick a stronger keyconst key = "1234567890"func main() {    claims := jwt.MapClaims{}    token, err := jwt.ParseWithClaims(tokenString, claims, keyFunc)    if err != nil {        panic(err)    }    fmt.Println(token.Valid)    email, ok := claims["email"].(string)    if !ok {        panic("Couldn't parse email as string")    }    fmt.Println(email)}func keyFunc(*jwt.Token) (interface{}, error) {    return []byte(key), nil}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go