session实现好像并没有起作用!
来源:3-15 api之session处理与实现(上)
慕移动7552751
2018-10-24
老师,您好!我对session验证那块的代码有疑问,下面这段代码感觉好像并没有起作用。
func (m middleWareHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
//check session
validateUserSession(r)
m.r.ServeHTTP(w, r)
}
另外,验证是否session是否过期的代码并没有更新ttl。
func IsSessionExpired(sid string) (string, bool) {
ss, ok := sessionMap.Load(sid)
ct := nowInMilli()
if ok {
if ss.(*defs.SimpleSession).TTL < ct {
deleteExpiredSession(sid)
return "", true
}
return ss.(*defs.SimpleSession).Username, false
} else {
ss, err := dbops.RetrieveSession(sid)
if err != nil || ss == nil {
return "", true
}
if ss.TTL < ct {
deleteExpiredSession(sid)
return "", true
}
sessionMap.Store(sid, ss)
return ss.Username, false
}
return "", true
}
我想知道我登录后,不间断请求超过30分钟后,如何实现session验证的?
谢谢老师了!
写回答
1回答
-
艾文西
2018-10-25
这里的session机制确实是没有更新session的,如果有兴趣您可以自己加上
添加也很简单,直接在这里面重新调用GenerateNewSessionId完成
00
相似问题