mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2025-12-15 13:59:57 +08:00
由gopath形式改为module
This commit is contained in:
51
agent/controllers/keep_session.go
Normal file
51
agent/controllers/keep_session.go
Normal file
@@ -0,0 +1,51 @@
|
||||
/***************************************************
|
||||
** @Desc : This file for 保持会话
|
||||
** @Time : 19.11.29 13:55
|
||||
** @Author : Joker
|
||||
** @File : keep_session
|
||||
** @Last Modified by : Joker
|
||||
** @Last Modified time: 19.11.29 13:55
|
||||
** @Software: GoLand
|
||||
****************************************************/
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"agent/sys/enum"
|
||||
"github.com/beego/beego/v2/server/web"
|
||||
)
|
||||
|
||||
type KeepSession struct {
|
||||
web.Controller
|
||||
}
|
||||
|
||||
// 生成随机md5值,客户端和服务端各保存一份
|
||||
// 客户端每次请求都将重写md5值
|
||||
// 若用户在30分钟内没有操作行为或连续操作时间超过3小时,则自动退出
|
||||
func (c *KeepSession) Prepare() {
|
||||
// 以免session值不是string类型而panic
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
c.DelSession(enum.UserSession)
|
||||
c.Ctx.Redirect(302, "/")
|
||||
}
|
||||
}()
|
||||
|
||||
us := c.GetSession(enum.UserSession)
|
||||
uc := c.GetSession(enum.UserCookie)
|
||||
if us == nil || uc == nil {
|
||||
c.DelSession(enum.UserSession)
|
||||
c.Ctx.Redirect(302, "/")
|
||||
}
|
||||
|
||||
if uc.(string) == "" {
|
||||
c.DelSession(enum.UserSession)
|
||||
c.Ctx.Redirect(302, "/")
|
||||
}
|
||||
|
||||
_, b := c.Ctx.GetSecureCookie(uc.(string), enum.UserCookie)
|
||||
//utils.LogNotice(fmt.Sprintf("客户端cookie:%s,服务端cookie:%s", cookie, uc.(string)))
|
||||
if !b {
|
||||
c.DelSession(enum.UserSession)
|
||||
c.Ctx.Redirect(302, "/")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user