Kaynağa Gözat

store more data in session

Paul 6 yıl önce
ebeveyn
işleme
a679f08b62
1 değiştirilmiş dosya ile 11 ekleme ve 2 silme
  1. 11
    2
      middleware/auth/session_redis.go

+ 11
- 2
middleware/auth/session_redis.go Dosyayı Görüntüle

@@ -1,13 +1,18 @@
1 1
 package auth
2 2
 
3 3
 import (
4
+	"encoding/json"
4 5
 	"time"
5 6
 
6 7
 	"git.links123.net/links123.com/pkg/utils"
7 8
 	"github.com/go-redis/redis"
8 9
 )
9 10
 
10
-type RedisSessionStore struct{ client *redis.Client }
11
+type (
12
+	RedisSessionStore struct{ client *redis.Client }
13
+
14
+	item map[string]interface{}
15
+)
11 16
 
12 17
 func NewRedisSessionStore(address string, password string) *RedisSessionStore {
13 18
 	session := &RedisSessionStore{}
@@ -25,7 +30,7 @@ func NewRedisSessionStore(address string, password string) *RedisSessionStore {
25 30
 
26 31
 func (rss *RedisSessionStore) StoreJwtToken(token string, uid int64, timeout int64) error {
27 32
 	k := utils.Md5(token)
28
-	v := map[string]int64{"user_id": uid, "created": time.Now().Unix()}
33
+	v := item{"user_id": uid, "created": time.Now().Unix()}
29 34
 
30 35
 	return rss.client.Set(k, v, time.Duration(timeout)*time.Second).Err()
31 36
 }
@@ -41,3 +46,7 @@ func (rss *RedisSessionStore) DeleteJwtToken(token string) bool {
41 46
 
42 47
 	return rss.client.Del(k).Val() == 1
43 48
 }
49
+
50
+func (i item) MarshalBinary() (data []byte, err error) {
51
+	return json.Marshal(i)
52
+}