NodeJS接口调用凭证access_token的缓存与更新
分类专栏: Node
简介 NodeJS接口调用微信小程序凭证access_token的缓存与更新
<pre class="ql-syntax" spellcheck="false">/*
* @Author: your name
* @Date: 2021-05-26 16:07:07
* @LastEditTime: 2021-05-26 17:02:48
* @LastEditors: Please set LastEditors
* @Description: 接口调用凭证access_token的缓存与更新
* @FilePath: \bazai_music_api\utils\getAccessToken.js
*/
const fs = require('fs')
const path = require('path')
const fileName = path.resolve(__dirname, './access_token.json')
console.log('fileName', fileName)
const axios = require('axios')
const APPID = '*******'
const APPSECRET = '*****'
const URL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
const updateAccessToken = async () => {
const result = await axios.get(URL)
// 写文件
if (result.data.access_token) {
fs.writeFileSync(fileName, JSON.stringify({
access_token: result.data.access_token,
createtime: new Date()
}))
} else {
// 更新access_token
await updateAccessToken()
}
}
const getAccessToken = async () => {
// 读取文件
try {
const readRes = fs.readFileSync(fileName, 'utf-8')
const readObj = JSON.parse(readRes)
const createTime = new Date(readObj.createTime).getTime()
const nowTime = new Date().getTime()
// 是否过期
if ((nowTime - createTime) / 1000 / 60 / 60 >= 2) {
await updateAccessToken()
await getAccessToken()
}
return readObj.access_token
} catch (error) {
await updateAccessToken()
await getAccessToken()
}
}
// 间隔2小时重新获取,提前200秒
setInterval(async () => {
await updateAccessToken()
}, 7000 * 1000)
// updateAccessToken()
// console.log(getAccessToken())
</pre>
分享到:
转载:
喜欢 1
收藏
上一篇:
微信小程序的相关原理知识
暂无评论信息
- 相关文章
- 文章推荐
-
HTML 面试知识点总结
本部分主要是笔者在复习 HTML 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出!
-
jQuery 3.0正式发布
jQuery 基金会刚刚发布了该 Java 框架的 3.0 版本,并且首次抛弃了对老旧的 IE 浏览器的支持。jQuery 3.0 的工作始于 2014 年 10 月,其最初目标是在 2.0 版本之上进行完善,并和遥远的 1.0 版代码说再见——因为要兼容 IE 的缘故,其已经臃肿不堪。jQuery 2.0 已经与 1.0 版本完全不兼容,而 3.0 也将继续这一路线。
-
娱美德旗下MMORPG手游《传奇4》将推出新PVP玩法"比奇掠夺"&
《传奇4》推出新门派PVP玩法!韩国首尔2022年6月29日 /美通社/ -- 《传奇4》(MIR4)的新PVP玩法比奇掠夺(Bicheon Heist)于2022年6月28日推出。
-
Node 配置sequelize + mysql,根据模型自动创建数据库表
研究了一下午的node + sequelize + mysql。
- 点击排行
- 站长推荐
- 猜你喜欢
- 网站信息
- 站内问答:12篇
- 站内文章:213篇
- 建站时间:已运行1254天
- 备案号: 浙ICP备2022018799号
- 语言:
- English(USA)
- French(FR)
- Chinese(ZH)
无数据