如何解决API Access Token 过期时间很短
我对 API 还很陌生,我正在开始我的第一个 API 项目。我正在使用 Petfinder API v2 创建一个搜索可收养动物的网站。但是他们的 API 使用 OAuth,他们会给你一个密钥和秘密。然后你使用它们来使用 CURL 之类的东西来获取令牌。但是这个令牌会在 60 分钟后过期。之后,您需要请求一个新的令牌。 有谁知道如何增加令牌的到期时间?或者有没有办法无限的时间?或者是否有代码可以自动获取新令牌?我正在使用 vanilla JavaScript 来编程。
这是他们的文档:https://www.petfinder.com/developers/v2/docs/
解决方法
您无法延长访问令牌的到期时间。这是 Petfinders 受益的一项安全措施,因此他们不会有一堆旧令牌。
如果您的令牌已过期,您可以做的是更新您的代码以获取新令牌。 vanilla javascript 的原始灵感是 here。
// Get OAuth token
const getOAuth = function() {
return fetch('https://api.petfinder.com/v2/oauth2/token',{
method: 'POST',body: 'grant_type=client_credentials&client_id=' + key + '&client_secret=' + secret,headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(resp) {
return resp.json();
}).then(function(data) {
// Store token data
token = data.access_token;
tokenType = data.token_type;
expires = new Date().getTime() + (data.expires_in * 1000);
});
};
// Make call if token expired
const makeCall = () => {
// If current token is invalid,get a new one
if (!expires || expires - new Date().getTime() < 1) {
getOAuth().then(function() {
// use access token
});
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。