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
收藏
上一篇:
微信小程序的相关原理知识
暂无评论信息
- 相关文章
- 文章推荐
- 点击排行
- 站长推荐
- 猜你喜欢
- 暴雪嘉年华确认将于 2023 年回归
- NodeJs配置mysql连接池连接
- Node 配置sequelize + mysql,根据模型自动创建数据库表
- 马斯克在推特回应推特起诉:真讽刺,我笑了
- 'MongoDB: Failed to parse objectId ' in $convert with no onError value: Invalid string length for parsing to OID, expected 24 but found 0'
- 亚马逊推出“无需收银员”的新技术,以此帮助品牌和广告商提高销量
- css自定义滚动条样式
- javascript 常见的正则校验
- CSS 实现上下左右箭头(>)
- 乐视官方确认还有 400 多人:消息称员工“没有内卷和 996”,过着“没有老板”的神仙日子
- 网站信息
- 站内问答:12篇
- 站内文章:207篇
- 建站时间:已运行914天
- 备案号: 浙ICP备2022018799号
- 语言:
English(USA)
French(FR)
Chinese(ZH)
无数据