fix
wangpengfei
2023-08-18 a421739387eb8bc0c41b70fee072473d981c537f
fix

add jwtAuth2
2个文件已修改
33 ■■■■■ 已修改文件
middleware/jwt.go 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/index.go 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
middleware/jwt.go
@@ -79,3 +79,32 @@
        c.Next()
    }
}
func JWTAuth2() gin.HandlerFunc {
    return func(c *gin.Context) {
        // 我们这里jwt鉴权取头部信息 Authorization 登录时回返回token信息 这里前端需要把token存储到cookie或者本地localStorage中 不过需要跟后端协商过期时间 可以约定刷新令牌或者重新登录
        token := c.Request.Header.Get("Authorization")
        if token == "" {
            c.Next()
            return
        }
        slices := strings.Split(token, " ")
        if len(slices) == 2 {
            token = slices[1]
        }
        j := utils.NewJWT()
        // parseToken 解析token包含的信息
        claims, err := j.ParseToken(token)
        if err != nil {
            if err == utils.TokenExpired {
                c.Next()
                return
            }
            c.Next()
            return
        }
        c.Set("claims", claims)
        c.Next()
    }
}
router/index.go
@@ -3,6 +3,7 @@
import (
    "aps_crm/conf"
    _ "aps_crm/docs"
    "aps_crm/middleware"
    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
    swaggerFiles "github.com/swaggo/files"
@@ -87,6 +88,7 @@
    routerGroup := new(Group)
    PublicGroup := Router.Group("api")
    {
        // 健康监测
        PublicGroup.GET("/health", func(c *gin.Context) {
@@ -100,7 +102,7 @@
    PrivateGroup := Router.Group("api")
    //PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
    //PrivateGroup.Use(middleware.JWTAuth())
    PrivateGroup.Use(middleware.JWTAuth2())
    //PrivateGroup.Use(middleware.CasbinHandler())
    {
        routerGroup.InitJwtRouter(PrivateGroup)                  // jwt相关路由