Documentation ¶
Index ¶
- func GetSession(req *http.Request, store sessions.Store, cookieName string) (*sessions.Session, error)
- func NewCookieStore(keyPairs []byte, options *sessions.Options) *sessions.CookieStore
- func SaveSession(req *http.Request, writer http.ResponseWriter, session *sessions.Session) error
- type GobSerializer
- type KeyGenFunc
- type RedisStore
- func (s *RedisStore) Close() error
- func (s *RedisStore) Get(r *http.Request, name string) (*sessions.Session, error)
- func (s *RedisStore) KeyGen(f KeyGenFunc)
- func (s *RedisStore) KeyPrefix(keyPrefix string)
- func (s *RedisStore) New(r *http.Request, name string) (*sessions.Session, error)
- func (s *RedisStore) Options(opts sessions.Options)
- func (s *RedisStore) Save(r *http.Request, w http.ResponseWriter, session *sessions.Session) error
- func (s *RedisStore) Serializer(ss SessionSerializer)
- func (s *RedisStore) SetSessionTimeoutWhenMaxAgeZero(duration time.Duration)
- type SessionSerializer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetSession ¶
func GetSession(req *http.Request, store sessions.Store, cookieName string) (*sessions.Session, error)
GetSession 尝试获取一个 *sessions.Session 实例(优先用已有的,没的话再创建).
PS: 可以通过 sessions.Session 的 IsNew 属性判断该实例是"新创建的"还是"原有的".
@param req e.g. gin中的ctx.Request @param cookieName 浏览器端cookie的name
func NewCookieStore ¶
func NewCookieStore(keyPairs []byte, options *sessions.Options) *sessions.CookieStore
NewCookieStore
PS: 以 sessions.NewCookieStore() 为基础进行修改.
@param keyPairs []byte("0123456789abcdef0123456789abcdef") @param options 可以为nil(将采用默认值)
Types ¶
type GobSerializer ¶
type GobSerializer struct{}
GobSerializer Gob serializer
func (GobSerializer) Deserialize ¶
func (gs GobSerializer) Deserialize(d []byte, s *sessions.Session) error
type KeyGenFunc ¶
KeyGenFunc defines a function used by store to generate a key
type RedisStore ¶
type RedisStore struct {
// contains filtered or unexported fields
}
RedisStore stores gorilla sessions in Redis
func NewRedisStore ¶
func NewRedisStore(ctx context.Context, client redis.UniversalClient) (*RedisStore, error)
NewRedisStore returns a new RedisStore with default configuration
func (*RedisStore) KeyGen ¶
func (s *RedisStore) KeyGen(f KeyGenFunc)
KeyGen sets the key generator function
func (*RedisStore) KeyPrefix ¶
func (s *RedisStore) KeyPrefix(keyPrefix string)
KeyPrefix sets the key prefix to store session in Redis
func (*RedisStore) New ¶
New returns a session for the given name without adding it to the registry.
func (*RedisStore) Options ¶
func (s *RedisStore) Options(opts sessions.Options)
Options set options to use when a new session is created
func (*RedisStore) Save ¶
func (s *RedisStore) Save(r *http.Request, w http.ResponseWriter, session *sessions.Session) error
Save adds a single session to the response.
If the Options.MaxAge of the session is <= 0 then the session file will be deleted from the store. With this process it enforces the properly session cookie handling so no need to trust in the cookie management in the web browser.
func (*RedisStore) Serializer ¶
func (s *RedisStore) Serializer(ss SessionSerializer)
Serializer sets the session serializer to store session
func (*RedisStore) SetSessionTimeoutWhenMaxAgeZero ¶
func (s *RedisStore) SetSessionTimeoutWhenMaxAgeZero(duration time.Duration)
SetSessionTimeoutWhenMaxAgeZero Richelieu
@param duration > 0: 指定时间的有效期
== 0: 永久有效(TTL == -1,不建议这么干) < 0: 采用默认值