位置: 编程技术 - 正文

利用php-cli和任务计划实现刷新token功能的方法(phpinclude)

编辑:rootadmin

推荐整理分享利用php-cli和任务计划实现刷新token功能的方法(phpinclude),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php怎么运用,使用php代码的方法,php使用教程,php使用教程,使用php,使用php代码的方法,phpinclude,使用php代码的方法,内容如对您有帮助,希望把文章链接给更多的朋友!

1、业务需求

需要实现这样一个功能:在第三方授权的认证当中,在用户首次登录授权我们会得到一个access_token,有效期为小时,还会得到一个refresh_token,有效期为天。

我们只要保存好这个refresh_token,在天内我们都可以用这个refresh_token去请求一个api,他会返回一个新的access_token。这样我们只需要让用户授权一次,我们就可以获得长达天的一个授权期限。

这里可以分为几个点:

<1>这个应该是要定期执行的一个任务。

小时才会过期,那么我们小时刷一次就足够了,并不需要很频繁的刷新。假设这样一种情况:让一个页面持续的运行,用一个while的死循环去执行一个任务,执行完之后sleep很长一段时间,然后再继续执行。这样做也是可以的,但是比较占资源。他执行的时间很少,等待的时间却很长,没必要这样一直等待。

<2>这个应该不需要是一个可以访问到的页面。

是我们内部执行的一个任务,不需要是人人可以访问到的一个页面。

<3>这个页面应该也要和框架融合在一起,可以访问到各种资源。

一个普通的php页面恐怕是不行的,我们需要跟框架融合的一个页面,需要可以访问到各种资源,比如说redis,比如说config,等等。

2、用cli模式运行codeigniter的页面

<1>cli的页面特性

什么是cli模式?就是命令行模式。我们可以不用url来访问php页面,而使用命令行来访问,这是可以的。

对页面来说,什么都不需要改变,比如:

>同样要是一个普通的controller,要继承自CI_Controller;

>要定义路由器,这个页面必须也是经由路由访问得到;

>甚至仍然可以添加这样的声明

defined('BASEPATH') OR exit('No direct script access allowed');

>可以通过添加一个判断让页面只能让cli访问:

>通过echo打印在命令行上面,就如打印在页面上一样

<2>怎么通过命令行访问

利用php-cli和任务计划实现刷新token功能的方法(phpinclude)

cd E:xxxxxxphpSite //网站的根目录,即index.php所在目录

php index.php aaa bbb ccc //即访问网址为yourdomain.com/index.php/aaa/bbb/ccc这样的地址注意:

>第一行是转到网站根目录这个路径;

>第二行php是调用了php.exe这个是因为我们有设置php的环境变量;

>index.php不可以缺少,因为这里我们没有走服务器了,没有经过服务器的url-rewrite,所以这个index.php是必不可少的。

我们可以将这两行代码放在一个文本文件里面,将名字改为refresh.bat,双击这个bat文件,他就会执行一次,相当于打开命令行来执行

如果我们需要调试的话,不要让弹出的命令行自动关掉,我们可以在加上第三行代码,加一个单词就可以了:pause

他就会停住并且显示相关的信息方便我们调试。

<3>页面调试

如下例子,此页面通过把一个值每刷新页面一次累加一次,存在redis里,来验证页面是否有被访问过:

3、创建计划任务让他运行bat文件

4、刷新token

<1>命名的规则

刷新token首先想到的是遍历redis。redis那么多应该怎么遍历?我想到的是给不同类型redis设定不同的前缀。

比如说,所有用户的refresh_token的key都这样写:"refresh_token_用户id"。然后用redis的模式匹配就可以把以"refresh_token_"开头的key找出来,然后一条条处理。

<2>redis遍历

首先,redis是有模式识别的功能,参见手册:

注意:这里要特别说明一下,我们在写入这个token的时候,会将有效期写进去,那么只要这个有效期的值是正确的,我们取到这个token必定是有效的,那么我们拿这个有效的token去刷新,必然是成功的。一般不存在刷新失败的情况。因为这个token一旦失效我们也就取不到了。

以上这篇利用php-cli和任务计划实现刷新token功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

Laravel5中Cookie的使用详解 今天在Laravel框架中使用Cookie的时候,碰到了点问题,自己被迷糊折腾了半多小时.期间研究了Cookie的实现类,也在网站找了许多的资料,包括问答。发现

PHP实现中国公民身份证号码有效性验证示例代码 本文将使用Java实现中国公民(位或者位)身份证号码的相关验证,功能如下:身份证号有效性验证分析详细身份证信息生成一个虚拟的省份证号码。

Yii2表单事件之Ajax提交实现方法 本文实例讲述了Yii2表单事件之Ajax提交实现方法。分享给大家供大家参考,具体如下:前言Yii2现在使用JS都必须要注册代码了。要实现Ajax提交,有两种

标签: phpinclude

本文链接地址:https://www.jiuchutong.com/biancheng/293540.html 转载请保留说明!

上一篇:利用php-cli和任务计划实现订单同步功能的方法(php include require)

下一篇:Laravel5中Cookie的使用详解

  • 退税收入如何做账
  • 增值税专用发票抵扣期限
  • 增值税纳税申报时间
  • 财税大管家客服电话
  • 怎么算印花税计算器
  • 进口货物增值税的组成计税价格是
  • 关联企业的判定标准
  • 工程建设期间发生的业务招待费
  • 公司亏损汇算清单模板
  • 理事单位和事业单位的区别
  • 红字发票可以只开金额没有数量吗
  • 营改增后房地产企业账务处理
  • 会计凭证的保管期限为多少
  • 老板投入资金入什么科目
  • 药店药品成本怎么核算
  • 出口退税进项发票
  • 房地产企业汇算清缴报表
  • 官司赔偿费用需要发票吗
  • 小规模企业给别人开16万增值税专用发票
  • 企业所得税权责发生
  • 酒店行业税负率怎么算
  • 水利基金按含税还是不含税申报
  • 应交增值税进项税额借贷方向
  • 中央下拨党费
  • 分支机构能否核定企业所得税
  • 已报税的发票可以作废吗
  • 新公司税控盘购买流程
  • windows11进入桌面黑屏
  • 新版edge浏览器兼容模式怎么设置
  • 股票股利和现金股利的共同点
  • 收到货款发票怎么记账
  • 赔偿款支出会计处理
  • 自产产品用于业务招待 如何申报企业所得税
  • 艾草的功效与作用洗头
  • 生产型企业出口不是自己生产的东西
  • 斐讯路由器怎么重置
  • 192.168.2.1 路
  • 缴纳租房押金会被骗吗
  • 集团的资产
  • 马塔饰件怎么样
  • iis安装php环境
  • web前端面试常见问题
  • labelme目标检测
  • webpack打包步骤
  • 人工智能能否在证券市场取得额外收益
  • 季报弥补亏损,财报怎么填
  • 测验3: 基本数据类型 (第3周)
  • sql server分为哪两类
  • 个人所得税手续费比例
  • 债务重组账务记忆口诀
  • 双分录怎么做记账凭证
  • 非本公司员工的火车票可以报销么
  • 结转固定资产清理损益的账务处理
  • 进项税额转出的几种情况
  • 融资租赁和经营租赁的会计处理
  • 建筑劳务公司的账务处理流程
  • 地税报表如何填写
  • sql server2005一个表中可以设置
  • sql动态表
  • mysql5.7版本的服务的名字是
  • 怎么查看445端口有没有关闭
  • 让Windows XP、2003、2008自动登录的设置
  • 华硕p8h61主板升级cpu
  • win7系统开机黑屏
  • win8系统怎么设置开机启动项
  • 光盘pe系统
  • windows xp删除所有数据
  • 根据自己的需求配置一台电脑
  • Fatal server error: could not open 无法进图形界面的解决办法
  • dmidecode 硬盘
  • Linux系统配置IP地址
  • 铁嘴银牙剧情简介
  • 老生常谈的近义词
  • node.js创建服务
  • linux的sed -i
  • javascript自定义函数
  • 浏览器环境下的事件循环
  • 浅谈jquery的应用
  • 福建省国家税务局通用定额发票
  • 北京税务网上营业厅官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设