package handler import ( "net/http" "kra/internal/server/httpx" "kra/internal/service" "github.com/gin-gonic/gin" ) type Session struct{ settings *service.SettingsService } func NewSession(settings *service.SettingsService) *Session { return &Session{settings: settings} } func (h *Session) Logout(c *gin.Context) { token := c.GetHeader("x-token") if token == "" { token, _ = c.Cookie("x-token") } if err := h.settings.BlacklistToken(c.Request.Context(), token); err != nil { httpx.Fail(c, "退出失败") return } http.SetCookie(c.Writer, &http.Cookie{Name: "x-token", Value: "", Path: "/", MaxAge: -1, HttpOnly: true}) httpx.OK(c) }