首页 > 解决方案 > 使用 Mocha 从控制台日志中检索 access_token

问题描述

我可以使用 console.log(res) 获取整个响应日志,但无法从中检索 access_token。包含 access_token 的响应如下所示:

    accept: [Array],
      'content-length': [Array]
    }
  },
  text: '{"access_token":"eyJhbGciOiJS....

我尝试了以下方法:

 .end(  function (res, err, access_token, refresh_token) {
      
       if (err) console.error(err);
       else {
      
      console.log(res)
      expect(res).to.have.status(200);
       
       //console.log(res.body)
       const token = JSON.stringify.access_token;
      // token = res.access_token;
       console.log(token)

      //  let accessToken = await auth.getAccessToken();
      //  console.log(accessToken);
      //  assert(accessToken != null, 'token is null');
       

       //var token = body.access_token
       //console.log(token + "see on token");
      // console.log(`options.access_token: ${options.access_token}`);

这就是我得到的

更新:通过使用下面的代码,解析和使用 stringify 我可以注销令牌,但我仍然无法使用下一个请求中的解析作为标头,变得未定义

chai.request(uaaUrl)
.post('/oauth/token')
.set('Content-Type', 'application/x-www-form-urlencoded')
.set('Accept', '*/*',)
   .send(Authuser)   
   .end(function(err, res, body) {      
       const eurotoken = JSON.parse(JSON.stringify(res.body.access_token));
       console.log('parsedd token', eurotoken);
       expect(res).to.have.status(200)
       done();
})




it('./health', (done) => {
    let eurotoken;
      chai.request(euro_url)
          .get('/request-statuses')
          .set('Content-Type', 'application/x-www-form-urlencoded')
          .set('Accept', '*/*',)
          .set('Authorization', `Bearer ${eurotoken}` )
          .end(  function (res, err, body) {  
          if (err) console.error(err);
          else {
            expect(res).to.have.status(200)           
            done();
               }
            done();
        })
        });

标签: javascriptapimocha.jschaiweb-api-testing

解决方案


推荐阅读