为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
月关宝盒 2022-12-19 19:59:39
这是我写的代码。当我使用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)}这是邮递员的回应。如何访问以下电子邮件地址
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

通过检查您的代码,我猜您正在使用这个golang-jwt包。


调用后,jwt.ParseWithClaims您应该能够访问您对代码中jwt.MapClaims命名的已创建对象的声明。claims


没有 Fiber 的例子,只有 golang-jwt,但逻辑保持不变:


package main


import (

    "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 key

const 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

}


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信