使用Axios拦截器更改令牌

时间:2018-11-20 19:00:03

标签: node.js axios

如何在此处使用拦截器来更改令牌?基本上,当我达到请求限制时,我想在发出请求之前更改令牌。到目前为止,我尝试将其添加到get请求中,但出现未定义的错误。这是代码:

//class for twitter instance
class TwitterDev{
    constructor(twitterObj){
        
        if(Object.keys(twitterObj).includes('token')){
            this.token= twitterObj.token;
        }
        this.instance = function twitterAxios(x){
         let token = x;
            let promise = new Promise((resolve, reject) => {
                let header = axios.create({
                  baseURL: "https://api.twitter.com",
                  timeout: 90000,
                 headers: { 
                     Authorization: "Bearer " + token }
                 
                });
 
                resolve(header);
                reject(error);
              });
              return promise;
        
        
        
        }

     
}
get(uri, params={}){
  
   
    return this.instance(this.token).then(obj=>{return obj.get(uri,params)});
//route that instantiates class
let token = process.env.TWITTER_TOKEN,
  token2 = process.env.TWITTER_TOKEN2
let twitter3 = new TwitterDev({token:token});

let ids_test = ["xxxxx"];
let globalCounter2 = 0;
ids_test.forEach(id => {
  let userObj = {
    params: {
      id: id,
      count: "5000",
      stringify_ids: true
    }
  };
  getUserFollowers("/1.1/followers/ids.json", userObj, []).then(res => {
    console.log(res.length);
    fs.writeFileSync(
      `${userObj.params.id}_p2_${setDate()}.json`,
      JSON.stringify(res)
    );
  }).catch(err=>handleRequestError(err));
});

get用户函数返回twitter3并使用params调用.get()方法,这是我尝试插入拦截器的地方。有任何想法吗?

0 个答案:

没有答案
相关问题