fix(chat): 优化后台限流与 SSE 日志
This commit is contained in:
@@ -52,6 +52,18 @@ func extractToken(c *gin.Context) string {
|
||||
return c.Query("token")
|
||||
}
|
||||
|
||||
func extractAdminToken(c *gin.Context) (string, string) {
|
||||
if tokenText := extractBearerToken(c); tokenText != "" {
|
||||
return tokenText, "bearer"
|
||||
}
|
||||
if cookieToken, err := c.Cookie(AdminAccessCookieName); err == nil {
|
||||
if tokenText := strings.TrimSpace(cookieToken); tokenText != "" {
|
||||
return tokenText, "cookie"
|
||||
}
|
||||
}
|
||||
return "", "none"
|
||||
}
|
||||
|
||||
func Auth(jwtManager *auth.JWTManager, validate UserTokenValidatorFunc) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
tokenText := extractToken(c)
|
||||
@@ -87,16 +99,9 @@ func Auth(jwtManager *auth.JWTManager, validate UserTokenValidatorFunc) gin.Hand
|
||||
|
||||
func AdminAuth(jwtManager *auth.JWTManager, validate AdminTokenValidatorFunc) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
tokenText := extractBearerToken(c)
|
||||
tokenSource := "bearer"
|
||||
tokenText, tokenSource := extractAdminToken(c)
|
||||
if tokenText == "" {
|
||||
if cookieToken, err := c.Cookie(AdminAccessCookieName); err == nil {
|
||||
tokenText = strings.TrimSpace(cookieToken)
|
||||
tokenSource = "cookie"
|
||||
}
|
||||
}
|
||||
if tokenText == "" {
|
||||
RecordAdminAuthFailure(c, "missing", "none", 0, 0)
|
||||
RecordAdminAuthFailure(c, "missing", tokenSource, 0, 0)
|
||||
response.Unauthorized(c, "缺少后台访问令牌")
|
||||
c.Abort()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user