Cookie 和 session
作用:
一定时间内保存用户数据
存储位置不同
Cookie存储位置在客户端
session存储位置在服务器
第二个不同
生命周期不同
Cookie能够设置生存时间
当设置的时间一到的时候,就失效了
session是当浏览器关闭的时候
session就失效了
第三个不同
适用场景不同
Cookie 一般安全性要求不高的数据
session 安全性要求高的数据
//设置Cookie
//1.cookie的key
//2.cookie中存放的value
//3.设置生效时间
this.Ctx.SetCookie("username",username,3600*24)
func (this *UserController) ShowLogin(){
userName :=
}
<input type="text" value="{{.userName}}" >
在登录成功的时候,可以给session设置数据
在进入后台之前,需要查询一下
session有没有数据
如果有数据
说明是登录状态
如果没有数据
说明不是登录状态
调回到登录页面
this.SetSession("username",username);
func (this *UserController) Logout(){
this.DelSession("userName")
this.Redirect("/login",302)
}
最近浏览人
点击文章之后,添加数据
m2m := o.QueryM2M(&article, "Users")
var user models.User
userName := this.GetSession("userName")
user.UserName=userName.(string)
o.Read(&user,"UserName")
m2m.Add(user)
this.Data["article"]=article
再来一次
//获取m2m操作对象
m2m := o.QueryM2M(&article, "Users")
//插入用户对象
var user models.User
userName := this.GetSession("userName")
user.UserName = userName.(string)
o.Read(&user, "UserName")
//插入数据
m2m.Add(user)
现在我们在展示页面的时候
要把最近浏览的user展示出来
//获取浏览记录
o.LoadRelated(&article,"Users")
还有第二种查询方法
qs := o.QueryTable("User")
qs.Filter("Users__User__UserName")
qs := o.QueryTable("User")
var users []models.User
qs.Filter("Articles__Article__Id",article.Id).Distinct().All(&users)
//数据传递给前端
this.Data["users"]=users