Files
kra-oa/internal/server/handler/session.go
T

27 lines
657 B
Go

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)
}