您好,登錄后才能下訂單哦!
初次用express做服務端,遇到登錄cookie設置的問題,梳理一下大概是這么一個過程:
前臺用戶名、密碼提交以后,后臺在數據庫查找記錄,找到記錄返回code=0登錄成功,同時后臺寫入cookie。
在express項目的app.js文件中寫入一個中間件,用app.use()引用,表示任何一個get,post請求都要走這一步過濾一下,這個函數自帶req,res,next三個參數,經過打印以后發現cookie就在header里,這樣前臺請求接口的時候,可以在這里判斷有沒有cookie,沒有的話就redirect跳登錄頁。
由于所有接口都要走這一步,包括/login這個頁面,所以出現了redirect次數過多導致頁面奔潰。于是加了判斷,路徑url如果是login就不跳轉。結果登錄還不成功,然后發現登錄接口是login/in,也滿足url不是login的條件,結果被攔截請求跳回登錄頁,滿地是坑啊!
由于管理后臺是vue做的,單獨起的服務,而express是另一個服務,開發的時候還沒有打包放入express服務下,所以后臺一刷頁面就出現“Error: Can't set headers after they are sent.”,百度上說是由于redirect重復寫了請求頭部,后來發現打包以后在同一個服務下訪問,就沒有這樣的問題,我就不再糾結了,畢竟最后發布,也是要放在一起的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。