25 lines
570 B
Go
25 lines
570 B
Go
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, "退出失败")
|
|
return
|
|
}
|
|
httpx.SetTokenCookie(c, "", -1)
|
|
httpx.OK(c)
|
|
}
|