一定时间后,在节点API中刷新Oauth令牌

时间:2019-05-17 20:02:54

标签: node.js express oauth refresh-token

我向客户端公开了一个基于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);
            }
        }

1 个答案:

答案 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