如何在每次访问令牌过期时自动生成访问令牌?

问题描述 投票:0回答:1

我正在尝试使用nodejs和亚马逊卖家合作伙伴api开发一个CRM应用程序。 为此,我有以下方法来生成访问令牌:

const express = require('express');
const asyncHandler = require('../middlewares/async')
const axios = require('axios');
const dotenv = require('dotenv');

dotenv.config({
    path: './.env'
})

exports.getToken = asyncHandler(async (req, res) => {
    try {
        const response = await axios.post(`${process.env.AMZ_ENDPOINT}`, {
            'grant_type': 'refresh_token',
            'refresh_token': process.env.REFRESH_TOKEN,
            'client_id': process.env.CLIENT_ID,
            'client_secret': process.env.CLIENT_SECRET
        });
    
        const accessToken = response.data;
        console.log(accessToken);
        res.status(200).json({ accessToken });
        
    } catch (error) {
        console.error(error);
    }
});

我得到的响应类型如下:

{
    "accessToken": {
        "access_token": "A access token",
        "refresh_token": "A refresh token",
        "token_type": "bearer",
        "expires_in": 3600
    }
}

我必须使用访问令牌向 amazon sp api 中的不同端点发出请求。 问题是访问令牌每小时都会过期。有没有办法在每次过期时以编程方式自动生成访问令牌?

node.js express amazonsellercentral
1个回答
0
投票

您可以按照使用访问令牌授予资源访问权限的方式创建和刷新令牌,但该

/refresh
路径只能使用刷新令牌访问,并返回新的刷新和访问令牌。要生成不同的密钥,您可以使用单独的秘密。

© www.soinside.com 2019 - 2024. All rights reserved.