iris-session梳理

本文详细梳理了Iris框架中的Session管理,包括入口、session的构造和使用方法。在入口部分,通过`api.Adapt(gm.NewSession())`初始化Session。在构造阶段,讨论了`MaxAgeSeconds`和`Expires`对有效期的影响。在使用时,通过`context.Session()`获取并可能启动Session,并在设置Cookie时处理Host信息。初始化过程中,新创建的Session会被保存,并设置定时任务以在过期后删除。Session销毁时,会从内存和数据库中同步删除。
摘要由CSDN通过智能技术生成

入口

api := iris.New()
api.Adapt(gm.NewSession())

session的构造

func NewSession() sessions.Sessions {
db := redis.New(rs.Config{Network: rs.DefaultRedisNetwork,
Addr: config.Instance().Redis.Address,
Password: config.Instance().Redis.Password,
Database: "",
MaxIdle: 0,
MaxActive: 0,
IdleTimeout: rs.DefaultRedisIdleTimeout,
Prefix: "",
MaxAgeSeconds: config.Instance().Redis.MaxAgeSeconds}) // optionally configure the bridge between your redis server

mySessions := sessions.New(sessions.Config{Cookie: configs.GetSessionConfig().Cookie, Expires: configs.GetSessionConfig().Expires})
mySessions.UseDatabase(db)
return mySessions
}

MaxAgeSeconds //指的是session在数据库存的有效期
Expires //指的是session的有效期

回到刚才的api.Adapt(gm.NewSession()),装饰器

func (s *sessions) Adapt(frame *iris.Policies) {
// for newcomers this maybe looks strange:
// Each policy is an adaptor too, so they all can contain an Adapt.
// If they contains an Adapt func then the policy is an adaptor too and this Adapt func is called
// by Iris on .Adapt(...)
policy := iris.SessionsPolicy{
Start: s.Start,
Destroy: s.Destroy,
}

policy.Adapt(frame)
func (s S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值