Initial commit: TaskPool React panel
- React frontend with route-level code splitting - Backend rebranded from Baihu to TaskPool - DB brand migration script and local compatibility
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/engigu/taskpool/internal/constant"
|
||||
"github.com/engigu/taskpool/internal/services"
|
||||
"github.com/engigu/taskpool/internal/utils"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// NotifyTokenAuth 通知 Token 认证中间件
|
||||
func NotifyTokenAuth() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
token := c.GetHeader("notify-token")
|
||||
if token == "" {
|
||||
utils.Unauthorized(c, "缺少通知 Token")
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
// 从 settings 表读取配置的通知 Token
|
||||
settingsService := services.NewSettingsService()
|
||||
savedToken := settingsService.Get(constant.SectionNotify, constant.KeyNotifyToken)
|
||||
|
||||
if savedToken == "" {
|
||||
utils.Unauthorized(c, "通知 Token 未配置")
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
if !strings.EqualFold(token, savedToken) {
|
||||
utils.Unauthorized(c, "通知 Token 无效")
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user