kra-new/internal/server/handler/session.go

26 lines
648 B
Go

package handler
import (
"kra/internal/server/middleware"
systemservice "kra/internal/service/system"
"github.com/gin-gonic/gin"
)
type Session struct{ tokens *systemservice.TokenService }
func NewSession(tokens *systemservice.TokenService) *Session { return &Session{tokens: tokens} }
func (h *Session) Logout(c *gin.Context) {
token := middleware.RequestToken(c, false)
if token == "" {
NoAuth(c, "未登录或非法访问")
return
}
if err := h.tokens.BlacklistToken(c.Request.Context(), token); err != nil {
Fail(c, "jwt作废失败")
return
}
SetTokenCookie(c, "", -1)
Write(c, CodeSuccess, gin.H{}, "jwt作废成功")
}