feat: backend core - auth, user, role, permission, device, webhook, monitoring, cache, repository, service, middleware, API handlers

This commit is contained in:
2026-04-02 11:19:50 +08:00
parent e59a77bc49
commit dcc1f186f8
298 changed files with 62603 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
package middleware
import (
"strings"
"github.com/gin-gonic/gin"
)
const sensitiveNoStoreCacheControl = "no-store, no-cache, must-revalidate, max-age=0"
// NoStoreSensitiveResponses prevents browser or intermediary caching for auth routes.
func NoStoreSensitiveResponses() gin.HandlerFunc {
return func(c *gin.Context) {
if shouldDisableCaching(c.FullPath(), c.Request.URL.Path) {
headers := c.Writer.Header()
headers.Set("Cache-Control", sensitiveNoStoreCacheControl)
headers.Set("Pragma", "no-cache")
headers.Set("Expires", "0")
headers.Set("Surrogate-Control", "no-store")
}
c.Next()
}
}
func shouldDisableCaching(routePath, requestPath string) bool {
path := strings.TrimSpace(routePath)
if path == "" {
path = strings.TrimSpace(requestPath)
}
return strings.HasPrefix(path, "/api/v1/auth")
}