go-wxhelper/router/middleware/auth.go
2024-01-19 12:06:30 +08:00

37 lines
935 B
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package middleware
import (
"gitee.ltd/lxh/logger/log"
"github.com/gin-gonic/gin"
"net/http"
"strings"
"wechat-robot/pkg/auth"
"wechat-robot/pkg/response"
)
// AuthorizeToken
// @description: 验证OAuth2生成的Token
// @return gin.HandlerFunc
func AuthorizeToken() gin.HandlerFunc {
return func(ctx *gin.Context) {
// 判断有无token
tokenStr := ctx.GetHeader("Authorization")
if tokenStr == "" || !strings.HasPrefix(tokenStr, "Bearer ") {
response.New(ctx).SetMsg("请先登录").Fail()
ctx.Abort()
return
}
// 先取出用户Token
token, err := auth.OAuthServer.ValidationBearerToken(ctx.Request)
if err != nil {
log.Errorf("获取Token失败错误%s", err.Error())
response.New(ctx).SetCode(http.StatusUnauthorized).SetMsg("登录已失效或已在其他地方登录").Fail()
ctx.Abort()
return
}
// 判断通过,允许放行
ctx.Set("userId", token.GetUserID())
}
}