优化结构
This commit is contained in:
@@ -3,12 +3,11 @@ package middleware
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"kra/internal/biz/system"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"kra/internal/biz"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"golang.org/x/sync/singleflight"
|
||||
)
|
||||
@@ -18,7 +17,7 @@ const claimsKey = "admin_claims"
|
||||
var refreshTokens singleflight.Group
|
||||
|
||||
type TokenAuthenticator interface {
|
||||
AuthenticateToken(context.Context, string) (*biz.TokenAuthentication, error)
|
||||
AuthenticateToken(context.Context, string) (*system.TokenAuthentication, error)
|
||||
}
|
||||
|
||||
func Auth(auth TokenAuthenticator) gin.HandlerFunc {
|
||||
@@ -54,7 +53,7 @@ func authenticate(c *gin.Context, auth TokenAuthenticator, allowQueryToken bool)
|
||||
NoAuth(c, tokenErrorMessage(err))
|
||||
return false
|
||||
}
|
||||
authentication, ok := value.(*biz.TokenAuthentication)
|
||||
authentication, ok := value.(*system.TokenAuthentication)
|
||||
if !ok || authentication == nil || authentication.Claims == nil {
|
||||
SetTokenCookie(c, "", -1)
|
||||
NoAuth(c, "无法处理此token")
|
||||
@@ -95,23 +94,23 @@ func requestToken(c *gin.Context, allowQueryToken bool) string {
|
||||
func tokenErrorMessage(err error) string {
|
||||
message := "无法处理此token"
|
||||
switch {
|
||||
case errors.Is(err, biz.ErrTokenExpired):
|
||||
case errors.Is(err, system.ErrTokenExpired):
|
||||
message = "登录已过期,请重新登录"
|
||||
case errors.Is(err, biz.ErrTokenMalformed):
|
||||
case errors.Is(err, system.ErrTokenMalformed):
|
||||
message = "这不是一个token"
|
||||
case errors.Is(err, biz.ErrTokenSignatureInvalid):
|
||||
case errors.Is(err, system.ErrTokenSignatureInvalid):
|
||||
message = "无效签名"
|
||||
case errors.Is(err, biz.ErrTokenNotValidYet):
|
||||
case errors.Is(err, system.ErrTokenNotValidYet):
|
||||
message = "token尚未激活"
|
||||
case errors.Is(err, biz.ErrTokenDisabled):
|
||||
case errors.Is(err, system.ErrTokenDisabled):
|
||||
message = "您的帐户异地登陆或令牌失效"
|
||||
}
|
||||
return message
|
||||
}
|
||||
|
||||
func Claims(c *gin.Context) *biz.AuthClaims {
|
||||
func Claims(c *gin.Context) *system.AuthClaims {
|
||||
value, _ := c.Get(claimsKey)
|
||||
claims, _ := value.(*biz.AuthClaims)
|
||||
claims, _ := value.(*system.AuthClaims)
|
||||
return claims
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user