go redis v8 gin session

今天使用到gin的模版功能,于是学习了一下登录session

因为gin有自家开发好的 session redis。所以在redis支持方面。已经有支持好的了

但是看了一下golang redis方面,发现有个 redis v8 里的人气比官方的人气更多。更新比较及时。

于是觉得还是整体使用v8的好些。

下面是一些整合方向的技术点:

新建一个redisv8的store,然后参考官方的redistore。增加对应的方法。因为官方的是继承 sessions.Store,所以要实现接口的一些方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
type store struct {
    *RediStoreV8
}
 
func (c *store) Options(options ginSession.Options) {
    c.RediStoreV8.Options = options.ToGorillaOptions()
}
 
type RediStoreV8 struct {
    Rdb           *redis.Client
    Codecs        []securecookie.Codec
    Options       *sessions.Options // default configuration
    DefaultMaxAge int               // default Redis TTL for a MaxAge == 0 session
    maxLength     int
    keyPrefix     string
    serializer    SessionSerializer
}

  基本上要注意的是,redis查询时,需要到ctx,这个ctx context.Context。注意要使用同一个变量。可以整成一个全局变量.然后其它的按照官方redisstore的使用方式就很好集成在一起了

注意这里有两个session 一个是github.com/gorilla/sessions 一个是github.com/gin-contrib/sessions

posted @   你好啊,再见了  阅读(479)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示