feat: 恢复 URL query token 认证,同时保留 Authorization 请求头方式

This commit is contained in:
MengMengCode
2026-03-02 10:04:19 +08:00
parent f783b294c6
commit 338b21775a

View File

@@ -25,12 +25,24 @@ func NewEmailHandler(db *database.DB, authToken string) *EmailHandler {
}
}
// AuthMiddleware 验证API令牌支持 Authorization 请求头)
// AuthMiddleware 验证API令牌支持 Authorization 请求头和 URL query 参数
func (h *EmailHandler) AuthMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
token := c.GetHeader("Authorization")
authorized := false
if token != "Bearer "+h.authToken {
// 方式1Authorization: Bearer <token> 请求头
if header := c.GetHeader("Authorization"); header == "Bearer "+h.authToken {
authorized = true
}
// 方式2URL query 参数 ?token=<token>
if !authorized {
if queryToken := c.Query("token"); queryToken == h.authToken {
authorized = true
}
}
if !authorized {
c.JSON(http.StatusUnauthorized, gin.H{
"error": "Unauthorized",
})