我正在尝试使用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 中的不同端点发出请求。 问题是访问令牌每小时都会过期。有没有办法在每次过期时以编程方式自动生成访问令牌?
您可以按照使用访问令牌授予资源访问权限的方式创建和刷新令牌,但该
/refresh
路径只能使用刷新令牌访问,并返回新的刷新和访问令牌。要生成不同的密钥,您可以使用单独的秘密。