首页 > 其他分享 >jwt

jwt

时间:2024-03-05 22:24:22浏览次数:19  
标签:return err nil fmt jwt token

func main() {
//生成token
maxAge := 60 * 60 * 24

//或者用下面自定义claim
claims := jwt.MapClaims{
"value": &Student{Name: "musong"},
"exp": time.Now().Add(time.Duration(maxAge) * time.Second).Unix(),
}

token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
tokenString, err := token.SignedString([]byte(SECRETKEY))
if err != nil {
fmt.Println(err)
}

fmt.Printf("token: %v\n", tokenString)

//解析token
ret, err := ParseToken(tokenString)
if err != nil {
fmt.Println(err)
}

s := new(Student)

v := ret["value"]

byt, _ := json.Marshal(v)

err = json.Unmarshal(byt, s)
if err != nil {
// return
}
fmt.Printf("userinfo: %v\n", s)
}

// 解析token
func ParseToken(tokenString string) (jwt.MapClaims, error) {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
// Don't forget to validate the alg is what you expect:
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
}

// hmacSampleSecret is a []byte containing your secret, e.g. []byte("my_secret_key")
return []byte(SECRETKEY), nil
})
if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
return claims, nil
} else {
return nil, err
}
}

标签:return,err,nil,fmt,jwt,token
From: https://www.cnblogs.com/musong1998/p/18055333

相关文章

  • 登录认证-引入(JWT令牌)
    //ArticleControllerpackagecom.di.bigevent.controller;importcom.di.bigevent.pojo.Result;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.anno......
  • Django项目中使用JWT身份验证
    一、什么是JWTJWT,全称是JSONWebToken,是一个开放标准(RFC7519),它定义了一种紧凑的、自包含的方式,用于在多方之间安全地传输JSON格式的信息。这些信息可以被验证和信任,因为它们是数字签名的。JWT由三部分组成:头部(Header)、负载(Payload)、签名(Signature),每部分之间以.分隔。JWT最常见......
  • FastAPI系列:jwt认证
    jwt认证1.头部Header,主要是对jwt元数据的描述{'alg':'HS256','typ':'JWT'}2.载荷playload,主要包含jwt信息需要传递的主体数据{'iss':'jack',#由jwt签发'sub':'jack',#该jwt面向的用户组,也称为主题......
  • .Net 6 WebAPI 使用JWT进行 授权认证配置
    .Net6WebAPI使用JWT进行授权认证1、安装组件(Nuget)Microsoft.AspNetCore.Authentication.JwtBearer2、Program.cs配置//授权认证(使用JWT)builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o=>{//私钥varsecretByte=Enco......
  • JWT(Token令牌)整合 SpringBoot
     前言:JWT(JSONWebToken)可以被称为令牌(token)。JWT是一种在网络应用中广泛使用的令牌格式,用于在用户和服务器之间传递安全可靠的信息。JWT通常包含了用户的身份信息和一些其他的元数据,被用作身份验证和授权。因此,人们经常将JWT简称为令牌(token)。 代码整合:1.导......
  • session验证与jwt验证
    简单谈谈session验证和jwt验证session验证简化版原理1.用户rds登录login页面,服务器向用户端发送一个sessionid,同时服务器创建一个和这个sessionid相关的会话信息(用于该用户下次session验证)2.用户再次登录或者访问授权页面,将sessionid发送到服务器3.服务器通过保留的会话信......
  • JWT
     1.介绍JWT(JSONWebToken)是一种非常轻量级的规范;使我们能在用户和服务器之间传递安全可靠的消息。JWT本质上是一个袖珍的安全令牌,允许我们以一种结构化的方式,在网络上安全的传输数据。 2.构成一个JWT实际上就是一个字符串,由三部分组合成:头部、载荷与签名。......
  • JWT认证和授权
    1.JWT的组成部分A.头部(Header):它包含了token的类型,即JWT,以及用于生成签名的算法信息,例如HMACSHA256或RSA。在JWT中,头部通常是一个JSON对象,例如{"alg":"HS256","typ":"JWT"}。B.载荷(Payload):这部分包含了声明(Claim),也就是一些关于实体的陈述,如主题、发行者、过期时间等。这......
  • SpringSecurity与JWT如何实现项目端分离认证与授权
    ✅SpringSecurity+JWT实现项目前端分离认证授权✅1.简介SpringSecurity是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,杜区资源也比Shiro丰富。一般来说中大型的项目都是使用SpringSecurity来做安全框架。小项目有Shiro的比较多,因......
  • c-jwt-cracker Jwt 密钥爆破工具的安装使用
    c-jwt-cracker  项目地址:https://github.com/brendan-rius/c-jwt-cracker BuildaDockerImagedockerbuild.-tjwtcrack RunonDocker  docker版使用方法dockerrun-it--rmjwtcrackeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODk......