123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package jws
- import (
- "git.aionnect.com/aionnect/go-common/utils"
- "github.com/gin-gonic/gin"
- "net/http"
- )
- // JWT中间件,检查token,校验不通过报错
- func NeedLogin() gin.HandlerFunc {
- return func(ctxt *gin.Context) {
- token := GetToken(ctxt)
- if token == "" {
- res := utils.E(http.StatusUnauthorized, "无权限访问", nil)
- res.Head.HttpStatus = http.StatusUnauthorized
- panic(res)
- return
- }
- j := NewJWT()
- // parseToken 解析token包含的信息
- claims, err := j.ParseToken(token)
- if err != nil {
- res := utils.E(http.StatusUnauthorized, err.Error(), nil)
- res.Head.HttpStatus = http.StatusUnauthorized
- panic(res)
- return
- }
- claims.Token = token
- // 继续交由下一个路由处理,并将解析出的信息传递下去
- ctxt.Set(Claims, claims)
- ctxt.Next()
- }
- }
- // JWT中间件,仅通过token获取载荷信息,校验不通过也不报错
- func GetClaims() gin.HandlerFunc {
- return func(ctxt *gin.Context) {
- token := GetToken(ctxt)
- if token != "" {
- j := NewJWT()
- // parseToken 解析token包含的信息
- claims, err := j.ParseToken(token)
- if err == nil {
- claims.Token = token
- // 继续交由下一个路由处理,并将解析出的信息传递下去
- ctxt.Set(Claims, claims)
- } else {
- claims = &TokenClaims{Token: token}
- }
- }
- ctxt.Next()
- }
- }
|