package handler import ( "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, "jwt作废失败") return } httpx.SetTokenCookie(c, "", -1) httpx.Write(c, httpx.CodeSuccess, gin.H{}, "jwt作废成功") }