29 lines
999 B
Markdown
29 lines
999 B
Markdown
|
# JWT 工具套件
|
|||
|
用于JWT(Json Web Token)的生成和验证。工具包附带一个全功能中间件。
|
|||
|
|
|||
|
## 使用方法
|
|||
|
### Token的生成
|
|||
|
|
|||
|
```go
|
|||
|
// 配置claims
|
|||
|
var tokenClaims = am_jwt.TokenClaims{
|
|||
|
Email: "example@example.com", // 用户的邮件地址
|
|||
|
Role: "user", // Role有四个取值级别:root、admin、user和temp,其中temp仅用于注册和重设密码
|
|||
|
Exp: 600, // token过期时间,以s为计数单位
|
|||
|
Issuer: "James", // 签发人
|
|||
|
SECRET: "ROMANCETILLDEATH", // 签发密钥
|
|||
|
}
|
|||
|
|
|||
|
var token = am_jwt.GenToken(&tokenClaims) // 生成token字串
|
|||
|
```
|
|||
|
|
|||
|
### Token验证中间件的使用
|
|||
|
按照普通中间件的使用方式加到需要的controller上即可。
|
|||
|
```go
|
|||
|
gin.SetMode(gin.DebugMode)
|
|||
|
r := gin.Default()
|
|||
|
// 参数是该controller访问所需要的权限。比该权限高的token均可访问,但temp除外,需要权限为temp的controller,user权限无法访问。
|
|||
|
r.POST("/test", am_jwt.JWTAuthMiddleware("user"), func(context *gin.Context) {
|
|||
|
...
|
|||
|
})
|
|||
|
```
|