25 lines
481 B
Go
25 lines
481 B
Go
package middleware
|
|
|
|
import (
|
|
"ckwk/internal/ckwk"
|
|
"ckwk/internal/dto"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func SessionMiddleware(sm *ckwk.SessionManager) gin.HandlerFunc {
|
|
return func(ctx *gin.Context) {
|
|
sessionID := ctx.GetHeader("X-Session-Id")
|
|
wk, ok := sm.Get(sessionID)
|
|
if !ok {
|
|
ctx.JSON(http.StatusUnauthorized, dto.Error(401, "登录过期"))
|
|
ctx.Abort()
|
|
return
|
|
}
|
|
ctx.Set("wk_instance", wk)
|
|
ctx.Set("session_id", sessionID)
|
|
ctx.Next()
|
|
}
|
|
}
|