auth.go 772 B

1234567891011121314151617181920212223
  1. package middleware
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "icloudapp.cn/tools/entity"
  5. )
  6. // JWTAuthMiddleware 基于JWT的认证中间件
  7. func AuthMiddleware() func(c *gin.Context) {
  8. return func(c *gin.Context) {
  9. // 客户端携带Token有三种方式 1.放在请求头 2.放在请求体 3.放在URI
  10. // token验证成功,返回c.Next继续,否则返回c.Abort()直接返回
  11. authHeader := c.Request.Header.Get("Authorization")
  12. if authHeader == "" {
  13. entity.ResponseError(c, entity.CodeNeedLogin)
  14. c.Abort()
  15. return
  16. }
  17. // 将当前请求的userID信息保存到请求的上下文c上
  18. //c.Set(controller.CtxUserIDKey, mc.UserID)
  19. c.Next() // 后续的处理请求的函数中 可以用过c.Get(CtxUserIDKey) 来获取当前请求的用户信息
  20. }
  21. }