dev stock stragety
This commit is contained in:
45
internal/middleware/session.go
Normal file
45
internal/middleware/session.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"github.com/gin-contrib/sessions"
|
||||
"github.com/gin-contrib/sessions/cookie"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
var sessionID string
|
||||
|
||||
func CheckSession() gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
session := sessions.Default(ctx)
|
||||
|
||||
//ctx.Next()
|
||||
//return
|
||||
|
||||
token := session.Get(sessionID)
|
||||
log.Println("session:", sessionID, token)
|
||||
// 未登录时重定向到登录页
|
||||
if token == nil {
|
||||
ctx.Redirect(301, "/sign-in")
|
||||
return
|
||||
}
|
||||
|
||||
// set simple var
|
||||
ctx.Set("SESSION", token)
|
||||
// validate session:1.check cache 2.check database // TODO
|
||||
|
||||
ctx.Next()
|
||||
}
|
||||
}
|
||||
func EnableCookieSession(name, key string) gin.HandlerFunc {
|
||||
store := cookie.NewStore([]byte(name))
|
||||
store.Options(sessions.Options{
|
||||
Path: "/",
|
||||
MaxAge: 86400, // 24小时
|
||||
HttpOnly: true,
|
||||
Secure: false, // 在使用HTTPS的生产环境中设置为true
|
||||
})
|
||||
sessionID = name
|
||||
return sessions.Sessions(key, store)
|
||||
}
|
||||
Reference in New Issue
Block a user