我向客户端公开了一个基于Express的REST api,但是我的api正在调用外部API,该API每60分钟需要旋转一次的oauth令牌,而且我不希望来自客户端的令牌,因此必须在调用外部api之前自行生成一个令牌每60分钟将其传递给外部api。我正在使用以下代码使用setTimeOut函数 但是我正在寻找其他更好的方法来刷新所见事物后面的令牌。请帮助我
//Refresh Token logic
async refreshToken() {
try {
let token = 'xyz-sbdkd'//from api;
// set token in global variable
process.env.TOKEN = token
setTimeout(() => {
this.refreshToken();
}, 59 * 60000);//this will be 59 minutes
} catch (err) {
setTimeout(() => {
this.refreshToken();
}, 3000);
}
}
答案 0 :(得分:0)
通常的方法是处理401 #include <stdio.h>
#include <string.h>
int main(void)
{
char str1[] = "foo";
char str2[] = "bar";
char ccat[strlen(str1)+strlen(str2)];
strncpy(&ccat[0], str1, strlen(str1));
strncpy(&ccat[strlen(str1)], str2, strlen(str2));
ccat[strlen(str1)+strlen(str2)]='\0';
puts(str1);
puts(str2);
puts(ccat);
printf("\n%s", ccat);
}
错误,该错误在令牌过期时使用。
Unauthorized
使用axios本机拦截器可以找到一种更优雅的方法,但是无法尝试: https://gist.github.com/mkjiau/650013a99c341c9f23ca00ccb213db1c