1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package auth
-
- import (
- "encoding/json"
- "time"
-
- "git.links123.net/links123.com/pkg/utils"
- "github.com/go-redis/redis"
- )
-
- type (
- RedisSessionStore struct{ client *redis.Client }
-
- item map[string]interface{}
- )
-
- func NewRedisSessionStore(address string, password string) *RedisSessionStore {
- session := &RedisSessionStore{}
- session.client = redis.NewClient(&redis.Options{
- Addr: address,
- Password: password,
- })
-
- if err := session.client.Ping().Err(); err != nil {
- panic(err)
- }
-
- return session
- }
-
- func (rss *RedisSessionStore) StoreJwtToken(token string, uid int64, timeout int64) error {
- k := utils.Md5(token)
- v := item{"user_id": uid, "created": time.Now().Unix()}
-
- return rss.client.Set(k, v, time.Duration(timeout)*time.Second).Err()
- }
-
- func (rss *RedisSessionStore) IsExistsJwtToken(token string) bool {
- k := utils.Md5(token)
-
- return rss.client.Exists(k).Val() == 1
- }
-
- func (rss *RedisSessionStore) DeleteJwtToken(token string) bool {
- k := utils.Md5(token)
-
- return rss.client.Del(k).Val() == 1
- }
-
- func (i item) MarshalBinary() (data []byte, err error) {
- return json.Marshal(i)
- }
|