gitee.com/woood2/luca@v1.0.4/cmd/backend/internal/middleware/auth.go (about)

     1  package middleware
     2  
     3  import (
     4  	"github.com/gin-gonic/gin"
     5  )
     6  
     7  const (
     8  	GinCtxKeyUid   = "currently-logged-in-uid"
     9  	GinCtxKeyUname = "currently-logged-in-uname"
    10  )
    11  
    12  type Header struct {
    13  	Token string `header:"token" binding:"required"`
    14  }
    15  
    16  func Auth() gin.HandlerFunc {
    17  	return func(c *gin.Context) {
    18  		h := Header{}
    19  		if err := c.ShouldBindHeader(&h); err != nil {
    20  			c.Abort()
    21  			c.String(401, "unauthorized")
    22  			return
    23  		}
    24  		//wanda-SDK:签名校验逻辑
    25  		//secretKey不必区分app,设计允许一个用户跨多app
    26  		//共享二级域名的app,可直接复用jwt。否则需要重新OAuth2
    27  		c.Set(GinCtxKeyUid, 911)
    28  		c.Set(GinCtxKeyUname, "燕双鹰")
    29  		c.Next()
    30  	}
    31  }