Contents

go第三方库-github.com.golang-jwt.jwt

Contents

godoc

godoc官网

生成jwt

声明claim结构体

1
2
3
4
5
6
type Claims struct {
	ID 		  uint 	`json:"id"`
	Username  string `json:"username"`
	Authority int    `json:"authority"`
	jwt.StandardClaims
}

使用结构体变量生成tokenClaim过渡对象

1
tokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)

给tokenClaim对象加盐(使用服务器密钥)获取token对象

1
token, err := tokenClaims.SignedString(jwtSecret)

解析jwt

使用Claim对象指针和返回服务器密钥的函数解析token获取tokenClaim对象

1
2
3
tokenClaims, err := jwt.ParseWithClaims(token, &Claims{}, func(token *jwt.Token) (interface{}, error) {
  return jwtSecret, nil
})

使用tokenClaim对象的Claim属性对Claim对象的类型断言获取Claim对象

1
2
3
if claims, ok := tokenClaims.Claims.(*Claims); ok && tokenClaims.Valid {
  return claims, nil
}
 |