溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何用Redis存放token?

發(fā)布時(shí)間:2020-05-19 16:47:02 來(lái)源:億速云 閱讀:1318 作者:Leah 欄目:關(guān)系型數(shù)據(jù)庫(kù)

如何用Redis存放token?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)這篇有關(guān)Redis存放token的文章,希望能幫助更多想解決這個(gè)問(wèn)題的朋友找到更加簡(jiǎn)單易行的辦法。

兩個(gè)命令

Redis有很多種數(shù)據(jù)類(lèi)型,在這里,我們只需要最簡(jiǎn)單的數(shù)據(jù)類(lèi)型string下的2個(gè)簡(jiǎn)單的命令,就可以完成我們需要的功能。

  • set

  • get

這兩個(gè)命令都非常簡(jiǎn)單,set是為一個(gè)鍵設(shè)置一個(gè)字符串。

$redis->set('name', 'monkeyking');

上面表示,將鍵name的值設(shè)置為monkeyking。另外,它還可以為鍵設(shè)置過(guò)期時(shí)間??梢栽O(shè)置過(guò)期時(shí)間實(shí)在太方便了。

$redis->set('name', 'monkeyking', ['ex' => 100]);
# 過(guò)期時(shí)間設(shè)置為100秒后

get命令是獲取一個(gè)字符串。下面代碼的意思是獲取到鍵name的值。

$redis->get('name');

使用redis除了性能好之外,還有一個(gè)非常好的地方。因?yàn)樗菃尉€程架構(gòu),所有的命令都是按順序執(zhí)行的。上一條命令執(zhí)行完后,下一條才會(huì)接著執(zhí)行,所以不會(huì)出現(xiàn)臟讀的情況。

實(shí)現(xiàn)功能

介紹完set及get后,就可以來(lái)完成我們的需求了。

微信獲取access_token的接口,返回的數(shù)據(jù)格式如下:

{"access_token":"xEaew2sI2dsAd","expires_in":7200}

我們只需要將xEaew2sI2dsAd存起來(lái),并設(shè)置下過(guò)期時(shí)間就行了。

代碼如下:

function setAccessToken ($token) {
    return $redis->set(
        'wx_access_token', 
        $token, 
        ['ex'=>7000]
    );
}

function getAccessToken ()
{
    return $redis->get('wx_access_token')
}

上面有一個(gè)注意點(diǎn),過(guò)期時(shí)間需要設(shè)置比7200小一些。防止極端情況,比如剛好在7200秒拿到token,去微信調(diào)用接口。因?yàn)檎{(diào)取接口也是需要時(shí)間的,這樣token就會(huì)過(guò)期了,導(dǎo)致錯(cuò)誤。

以上就是使用Redis存放token的方法了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI