博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis存储AccessToken
阅读量:5030 次
发布时间:2019-06-12

本文共 1649 字,大约阅读时间需要 5 分钟。

AccessToken 2小时有效。

就不要每次都调取了,这样会造成浪费。

或者存入Session中,设置过期时间。

或者存入Redis中,设置过期时间。
过期之后,进行重新获取。

red = Red::create(); } // 获取access_token public function get_access_token() { // 查询缓存中是否存在 $k = "access_token_".C('APPID'); if ($this->getCacheTtl($k)) { return $this->getCache($k); } vendor('Func.Http'); // 获取Token $request_url = "https://api.weixin.qq.com/cgi-bin/token?"; $request_url .= "grant_type=client_credential&appid=".C('APPID')."&secret=".C('APP_SECRET'); $data = json_decode(Http::doGet($request_url,30),true); $this->setCache($k,$data['access_token'],$data['expires_in'] - self::TOKEN_EXPIRES); return $data['access_token']; } // 存 protected function setCache($k, $v, $expires = -1) { if ($expires == -1) { return $this->red->set($k, $v); } else { return $this->red->setex($k, $expires, $v); } } // 取 public function getCache($k) { return $this->red->get($k); } // 查看剩余时间 public function getCacheTtl($k) { $ttl = $this->red->ttl($k); if ($ttl != '-2') { return $ttl; } else { return false; } } // 查看是否存在 public function cacheExists($k) { return $this->red->exists($k); }}

想得到AccessToken需要知道AppID和AppSecret。这两个数据,可以配置起来。

然后需要初始化Redis。
然后需要几个独立的Redis函数。
存储,获取,判断是否过期。

判断Redis中是否存在,且未过期。

如果有,直接获取。
如果没有,通过HttpGet请求,得到AccessToken。存入Redis中,并返回。

Redis很强大,只要保证key值不重复,就可以存储任何数据。

这里key值通过AppID进行唯一标示,防止有别的access_token也要存储。

PHP的redis扩展函数,功能强大!

转载于:https://www.cnblogs.com/jiqing9006/p/9119150.html

你可能感兴趣的文章
VS2010开发T4模版引擎之基础入门
查看>>
service postgresql initdb [FAILED]
查看>>
监听器
查看>>
类,结构,接口,抽象类
查看>>
LeetCode Valid Parenthesis String
查看>>
CF1009G Allowed Letters
查看>>
Max Points on a Line
查看>>
自动化测试之if __name__ == '__main__'未运行
查看>>
新奇特 技术 Python 将图片转化为 HTML 页面
查看>>
java常用工具类(二)
查看>>
00045_多态-转型
查看>>
VS项目中使用Nuget还原包后编译生产还一直报错?
查看>>
Servlet 生命周期、工作原理
查看>>
微信公共平台开发-(.net实现)4--发送图文消息
查看>>
材料知识--电池电极
查看>>
springMVC + spring + mybatis (SSM)合集
查看>>
python new和init知识点
查看>>
在SharePoint 2010中修改XsltListViewWebPart显示字段样式
查看>>
Centos6.5ifconfig不显示ip问题
查看>>
T-SQL语句学习(一)
查看>>