微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

API Access Token 过期时间很短

如何解决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 举报,一经查实,本站将立刻删除。