go redis v8 gin session
今天使用到gin的模版功能,于是学习了一下登录session
因为gin有自家开发好的 session redis。所以在redis支持方面。已经有支持好的了
但是看了一下golang redis方面,发现有个 redis v8 里的人气比官方的人气更多。更新比较及时。
于是觉得还是整体使用v8的好些。
下面是一些整合方向的技术点:
新建一个redisv8的store,然后参考官方的redistore。增加对应的方法。因为官方的是继承 sessions.Store,所以要实现接口的一些方法
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

浙公网安备 33010602011771号