Golang 新版JWT生成方法,与旧版的2处不同

package mainimport ("github.com/golang-jwt/jwt/v4""math/rand""testing""time")func TestJwtCreate(t *testing.T) {//定义 私钥keyword := "hello world"//定义结构体type myClaims struct {Username stringPassword string//这个位置是与原来的不同的地方,原来写的是jwt.StandardClaims//但是jwt.StandardClaims已经废弃了//替代的是jwt.RegisteredClaimsjwt.RegisteredClaims}//这个位置也是不同的地方//新版本的ExpiresAt和IssuedAt的类型是*jwt.NumericDate指针类型//而jwt.NumericDate中的Time字段是 time.Time类型//新版本的ExpiresAt和IssuedAt写法如下:ExpiresAt := jwt.NumericDate{Time: time.Now().Add(time.Hour),}IssuedAt := jwt.NumericDate{Time: time.Now(),}claims := &myClaims{//测试数据中的username和passwordUsername: "admin",Password: "123456",RegisteredClaims: jwt.RegisteredClaims{//Issuer 签发人是字符串Issuer:    "xuser",Subject:   "",Audience:  nil,ExpiresAt: &ExpiresAt,IssuedAt:  &IssuedAt,ID:        "",},}//NewWithClaims使用指定的签名方法和声明创建新token。//func NewWithClaims(method SigningMethod, claims Claims) *Token//jwt.SigningMethodHS256代表其方法//claims是之前创建的claimstoken := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)//func (t *Token) SignedString(key interface{}) (string, error)//SignedString创建并返回一个完整的签名JWT。使用令牌中指定的签名方法对令牌进行签名。//keyword是之前自定义的私钥,返回的结果是signedString字符串类型signedString, err := token.SignedString([]byte(keyword))if err != nil {t.Log(err)return}t.Log(signedString)}

代码截图

执行结果

展开阅读全文

页面更新:2024-03-12

标签:方法   令牌   写法   字段   字符串   指针   新版   定义   位置   类型   地方

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top