YMQOAuthTokenSetData.class.php
4.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<?php
require_once dirname(__FILE__). '/YMQOAuthTokenRedisHelper.class.php';
/**
* 存放访问令牌到Redis的操作类
*/
class YMQOAuthTokenSetData
{
/**
* 存放Redis对象
* @var object
*/
private static $redis;
/**
* 创建 Redis 对象
*/
private static function _createRedis()
{
if (!isset(self::$redis))
{
self::$redis = new YMQOAuthTokenRedisHelper();
}
else
{
// 测试此处有 socket 过期现象
$ping = @self::$redis->mRedis->ping();
// 判断连接是否断开
if ($ping != '+PONG')
{
self::$redis = new YMQOAuthTokenRedisHelper();
}
}
}
/**
* 存令牌数据到Redis
* [老方法, 已不再使用]
*
* @param string $token 存放键名: 唯一的访问令牌
* @param string $value 存放键值: 存放的令牌数据
* @param int $expire 令牌的使用周期
* @return void
* @example
* YMQOAuthTokenSetData::set("e434b93937v", '{"clientId":"3dfe9ydg8","scope":null}', 3600);
*/
public static function set($token, $data, $expire = YMQ_OAUTH_TOKEN_EXPIRED)
{
self::_createRedis();
// 设置值
self::$redis->mRedis->set(strval($token), $data);
// 设置过期时间
self::$redis->mRedis->setTimeout(strval($token), $expire);
}
/**
* 更新Redis中的令牌数据
* [老方法, 已不再使用]
*
* @param string $token 存放键名: 唯一的访问令牌
* @param string $value 存放键值: 存放的令牌数据
* @param int $expire 令牌的使用周期
* @return void
* @example
* YMQOAuthTokenSetData::update("e434b93937v", '{"clientId":"3dfe9ydg8","scope":null}', 3600);
*/
public static function update($token, $data, $expire = YMQ_OAUTH_TOKEN_EXPIRED)
{
// 删除指定的数据
self::delete(strval($token));
// 存放新的数据
self::set(strval($token), $data);
// 设置过期时间
self::$redis->mRedis->setTimeout(strval($token), $expire);
}
/**
* 删除指定键名存放在Redis中的数据
* [老方法, 已不再使用]
*
* @param string $token 存放键名: 唯一的访问令牌
* @return void
* @example
* YMQOAuthTokenSetData::delete("e434b93937v");
*/
public static function delete($token)
{
self::_createRedis();
self::$redis->mRedis->delete(strval($token));
}
/**
* 设置过期时间
*
* @param string $key 存放的键名
* @param string $expire 过期时间
* @return void
* @example
* YMQOAuthTokenSetData::setTimeout("e434b93937v", 60);
*/
public static function setTimeout($key, $expire = YMQ_OAUTH_TOKEN_EXPIRED)
{
self::_createRedis();
// 设置值
self::$redis->mRedis->set(strval($key), self::$redis->mRedis->get(strval($key)));
// 设置过期时间
self::$redis->mRedis->setTimeout(strval($key), $expire);
}
/**
* Hash 操作: 存数据到Redis
*
* @param string $userId 存放键名: 唯一的用户ID号
* @param string $appId 存放域: 唯一的应用ID号
* @param string $value 存放值: 存放的数据
* @param int $expire 存放有效周期
* @return void
* @example
* YMQOAuthTokenSetData::set('102030', '1000000', 'e434b93937v', '3600');
*/
public static function hSet($userId, $appId, $data)
{
self::_createRedis();
// 添加一个值 到hash中,如果这个值存在hash中 ,返回false
self::$redis->mRedis->hSet(strval($userId), strval($appId), $data);
}
/**
* Hash 操作: 删除用户的应用授权
*
* @param string $userId 存放的键名
* @param string $appId 存放的域
* @return void
* @example
* YMQOAuthTokenSetData::hDel('102030', '1000000');
*/
public static function hDel($userId, $appId)
{
self::_createRedis();
// 移除哈希对应键
self::$redis->mRedis->hDel(strval($userId), strval($appId));
}
}
?>