hikan.ru/mvc/controllers/session.go

32 lines
1.0 KiB
Go

package controllers
import (
"main/config"
"github.com/gin-contrib/sessions"
"github.com/gin-contrib/sessions/cookie"
"github.com/gin-gonic/gin"
)
func CreateSessionsStore(r *gin.Engine) {
store := cookie.NewStore([]byte(config.Cfg.CookieCryptKey), []byte(config.Cfg.CookieHMAC))
r.Use(sessions.Sessions(config.Cfg.SessionKey, store))
store.Options(sessions.Options{
Path: "/", // сессия действительна для всех путей
MaxAge: config.Cfg.SessionTime * 60 * 60, // время жизни сессий в часах
HttpOnly: true, // отключение доступа через js (так надо говорят)
})
}
// Возвращает уровень доступа из пользовательской сессии
func AccessLvl(c *gin.Context) int {
session := sessions.Default(c)
var accessLvl int
if session.Get("access_lvl") != nil {
accessLvl = session.Get("access_lvl").(int)
} else {
accessLvl = 0
}
return accessLvl
}