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
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号