活體檢測(cè)人臉識(shí)別(一)

到處都要用到的access_token的獲取和緩存!

官方說(shuō)可以每次都重新獲取,我建議還是緩存下來(lái)比較好。我用了Redis, 你也可以用其他你喜歡的方式。

把獲取的代碼封裝一個(gè)函數(shù),getAccessToken返回Promise 對(duì)象,每次調(diào)用成功后在繼續(xù)下一步操作!

const config = require('./config')

const https = require('https')

var request = require('request');

const moment = require("moment")

const qs = require('querystring')

var fs = require("fs")

const redis = require('then-redis')

const db = redis.createClient('tcp://localhost:6379')

function getAccessToken(){

return new Promise((resolve, reject)=>{

db.hgetall('AccessToken').then((res)=>{

if(res){

if(res.enddate <= moment().format("YYYY-MM-DD")){

var data = {

'grant_type': 'client_credentials',

'client_id': config.APIKey,

'client_secret': config.SecretKey

};//這是需要提交的數(shù)據(jù)

var content = querystring.stringify(data);

var options = {

hostname: 'aip.baidubce.com',

path: '/oauth/2.0/token?' + content,

method: 'GET'

};

var req = https.request(options, function(res){

res.setEncoding('utf8');

res.on('data', function (chunk) {

chunk = JSON.parse(chunk)

var obj = {

value: chunk.access_token,

enddate: moment().add(29, 'days').format("YYYY-MM-DD")

}

db.hmset("AccessToken", obj)

resolve(obj);

});

})

req.on('error', function (e) {

reject('problem with request: ' + e.message);

});

req.end()

}else{

resolve(res)

}

}else{

var data = {

'grant_type': 'client_credentials',

'client_id': config.APIKey,

'client_secret': config.SecretKey

};//這是需要提交的數(shù)據(jù)

var content = qs.stringify(data);

var options = {

hostname: 'aip.baidubce.com',

path: '/oauth/2.0/token?' + content,

method: 'GET'

};

var req = https.request(options, function(res){

res.setEncoding('utf8');

res.on('data', function (chunk) {

chunk = JSON.parse(chunk)

var obj = {

value: chunk.access_token,

enddate: moment().add(29, 'days').format("YYYY-MM-DD")

}

db.hmset("AccessToken", obj)

resolve(obj);

});

})

req.on('error', function (e) {

reject('problem with request: ' + e.message);

});

req.end()

}

}).catch((err)=>{

reject(err)

})

})

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 盛世神州賀歲除, 民安國(guó)泰情暢舒。 連年喜奏豐收曲, 漫歌歡舞慶有余。
    王世榮閱讀 456評(píng)論 0 1
  • 今天早上打開手機(jī),看到了這樣一則新聞,忍不住一陣唏噓。 讓我們來(lái)回望一下這位急診科醫(yī)生生命的最后幾小時(shí)。 2018...
    谷桐新月閱讀 2,974評(píng)論 15 22
  • 隔窗掃田壟,碧禾郁郁青。 山川飛如畫,幽月照歸程。 緘口睹蕓蕓,夜來(lái)幾許星。 幸得緣來(lái)客,笑語(yǔ)并歡聲。 無(wú)酒亦言歡...
    靳初檀閱讀 211評(píng)論 0 1
  • 例1 Show the name and the continent - but substitute Euras...
    JUNjianshuZHU閱讀 389評(píng)論 0 0

友情鏈接更多精彩內(nèi)容