在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ superagent中的agent方法如何保存cookie

superagent中的agent方法如何保存cookie

新人求助,現(xiàn)在在node上用superagent發(fā)送請求訪問幾個端口,需要將第一個請求獲取到的cookie保存下來,讓后面的請求繼續(xù)使用,正好在官方文檔發(fā)現(xiàn)這個庫里面有專門的agent()方法,但是官方文檔給出的例子看不太明白

const agent = request.agent();
agent
  .post('URL')
  .then(() => {
    return agent.get('/cookied-page');
  });

試了下打印agent好像結(jié)果都是cookiejar對象?所以想請教一下這個/cookied-page是什么....現(xiàn)在我想要將請求返回的cookie保存在一個全局變量中該怎么寫呢

回答
編輯回答
任她鬧
In Node SuperAgent does not save cookies by default, but you can use the .agent() method to create a copy of SuperAgent that saves cookies. Each copy has a separate cookie jar.

意思是說你用agent對象發(fā)的請求會保留cookie。/cookied-page只是一個示例url,你換成https://segmentfault.com/也行。
request.agent()返回的對象是request的copy(備份),所以使用API與request一樣,原來request.post('/api/pet')改成使用agent.post('/api/pet')即可,agent會保存cookie,下次發(fā)請求時會帶上。
比如你先登錄:

 agent
   .post('/api/login')
    //發(fā)送用戶名密碼登錄
   .send({ username: '用戶名', passwd: '密碼' })
    //目標(biāo)服務(wù)器返回 Set-Cookie:loginToken=38afes7a8; HttpOnly; Path=/

之后agent再發(fā)請求時會帶上用戶信息相關(guān)的cookieloginToken。

讀取agent中cookie的方法文檔沒寫,看了下源碼是用的cookiejar這個包,大概是agent.jar.getCookie("loginToken", { path: "/" }).value

2017年8月8日 21:45