| 
				
			 | 
			
			
				@@ -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
			 | 
			
			
				+} 
			 |