📅  最后修改于: 2023-12-03 15:27:05.104000             🧑  作者: Mango
在使用第三方 API 时,通常需要传递 access_token 才能进行数据请求。获取 access_token 的过程中,常规做法是直接将 url 发送给服务器,服务器再返回 access_token,但这样的方式存在一些问题,例如安全性、实时性等。通过热获取 access_token,可以更好地解决这些问题。本文将介绍如何使用 Javascript 进行热获取 access_token。
const APPID = 'your appid'
const APPSECRET = 'your appsecret'
let access_token;
function getAccessToken() {
// 如果 access_token 存在并且没有过期,直接返回 access_token
if (access_token && Date.now() < access_token.expires_in) {
return Promise.resolve(access_token.access_token)
}
// 发送请求获取 access_token
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
return fetch(url)
.then(response => response.json())
.then(res => {
// 将获取到的 access_token 存入全局变量
access_token = {
access_token: res.access_token,
expires_in: Date.now() + res.expires_in * 1000
};
return access_token.access_token;
})
}
getAccessToken().then(access_token => {
// 发送请求,使用 access_token
})
const APPID = 'your appid'
const APPSECRET = 'your appsecret'
let access_token;
function getAccessToken() {
if (access_token && Date.now() < access_token.expires_in) {
return Promise.resolve(access_token.access_token)
}
const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
return fetch(url)
.then(response => response.json())
.then(res => {
access_token = {
access_token: res.access_token,
expires_in: Date.now() + res.expires_in * 1000
};
return access_token.access_token;
})
}
getAccessToken().then(access_token => {
// 使用 access_token 的地方
})
本文介绍了通过热获取 access_token 的方式,可以更加安全、实时地使用第三方 API,让程序更稳定、更优秀。