人人人妻人人人妻人人人,99精品国产综合久久久久五月天 ,欧美白人最猛性XXXXX,日韩AV无码免费播放

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      樂(lè)道系統(tǒng)FAQ      利用php-cli和任務(wù)計(jì)劃實(shí)現(xiàn)刷新token功能的方法

利用php-cli和任務(wù)計(jì)劃實(shí)現(xiàn)刷新token功能的方法

標(biāo)簽: 發(fā)布日期:2017-05-03 00:00:00 277

1、業(yè)務(wù)需求

需要實(shí)現(xiàn)這樣一個(gè)功能:在第三方授權(quán)的認(rèn)證當(dāng)中,在用戶首次登錄授權(quán)我們會(huì)得到一個(gè)access_token,有效期為25小時(shí),還會(huì)得到一個(gè)refresh_token,有效期為30天。

我們只要保存好這個(gè)refresh_token,在30天內(nèi)我們都可以用這個(gè)refresh_token去請(qǐng)求一個(gè)api,他會(huì)返回一個(gè)新的access_token。這樣我們只需要讓用戶授權(quán)一次,我們就可以獲得長(zhǎng)達(dá)30天的一個(gè)授權(quán)期限。

這里可以分為幾個(gè)點(diǎn):

<1>這個(gè)應(yīng)該是要定期執(zhí)行的一個(gè)任務(wù)。

25小時(shí)才會(huì)過(guò)期,那么我們12小時(shí)刷一次就足夠了,并不需要很頻繁的刷新。假設(shè)這樣一種情況:讓一個(gè)頁(yè)面持續(xù)的運(yùn)行,用一個(gè)while的死循環(huán)去執(zhí)行一個(gè)任務(wù),執(zhí)行完之后sleep很長(zhǎng)一段時(shí)間,然后再繼續(xù)執(zhí)行。這樣做也是可以的,但是比較占資源。他執(zhí)行的時(shí)間很少,等待的時(shí)間卻很長(zhǎng),沒(méi)必要這樣一直等待。

<2>這個(gè)應(yīng)該不需要是一個(gè)可以訪問(wèn)到的頁(yè)面。

是我們內(nèi)部執(zhí)行的一個(gè)任務(wù),不需要是人人可以訪問(wèn)到的一個(gè)頁(yè)面。

<3>這個(gè)頁(yè)面應(yīng)該也要和框架融合在一起,可以訪問(wèn)到各種資源。

一個(gè)普通的php頁(yè)面恐怕是不行的,我們需要跟框架融合的一個(gè)頁(yè)面,需要可以訪問(wèn)到各種資源,比如說(shuō)redis,比如說(shuō)config,等等。

2、用cli模式運(yùn)行codeigniter的頁(yè)面

<1>cli的頁(yè)面特性

什么是cli模式?就是命令行模式。我們可以不用url來(lái)訪問(wèn)php頁(yè)面,而使用命令行來(lái)訪問(wèn),這是可以的。

對(duì)頁(yè)面來(lái)說(shuō),什么都不需要改變,比如:

>同樣要是一個(gè)普通的controller,要繼承自CI_Controller;

>要定義路由器,這個(gè)頁(yè)面必須也是經(jīng)由路由訪問(wèn)得到;

>甚至仍然可以添加這樣的聲明

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

>可以通過(guò)添加一個(gè)判斷讓頁(yè)面只能讓cli訪問(wèn):

  public function __construct()
  {
    parent::__construct();
    if (!is_cli())
      exit("不正確的訪問(wèn)方式");
  }