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
}
|