express中 使用session與cookie


1、express如何使用session與cookie : https://www.jianshu.com/p/1839e482274e  或  https://www.cnblogs.com/chyingp/p/express-session.html(推薦,比較完整)

2、cookie 可以多條設置,類似 localstorage 的存儲。設置時相同名稱 會被覆蓋掉。

  res.cookie('isFirst', 1, { maxAge: 6000 * 1000, singed: true});
  res.cookie('isFirst2', 2, { maxAge: 6000 * 1000, singed: true});
  res.cookie('isFirst', 3, { maxAge: 6000 * 1000, singed: true});

 

3、express 中調用 session 方法,會創建一條 cookie 的,這個session的信息對應這條cookie的信息的。

app.use(session({
  name: 'test_session', // 這里是cookie的name,默認是connect.sid
  secret: 'my_session_secret', // 建議使用 128 個字符的隨機字符串
  resave: true,
  saveUninitialized: false,
  cookie: { maxAge: 6000 * 1000, httpOnly: true }
}));
    req.session.isFirst = 1; // 程序中必須要至少一個 session 字段值,不然 session 不會啟用; session設置的字段,瀏覽器是沒有數據,只有對應的sessionID值。(這個是經過自己方法測試總結出來的)

 

 


總結:

1、session與cookie 的使用,可以 定位某個用戶(判斷是否登錄過)。不使用session、cookie也可以實現 定位某個用戶,使用token實現。

2、使用 token登錄驗證機制 :https://blog.csdn.net/weixin_42237752/article/details/88655511

         給每個接口傳遞一個userID(token值) 參數,因為userID是通過接口獲取的,且每次獲取是不一樣的,所以這個只能獲取一次,緩存下來。給其它頁面使用。兩種方案各有優缺點。

3、現在基本都使用tooken而不用session了:        https://blog.csdn.net/mydistance/article/details/84545768 

  一般單台服務器使用session,分布式服務器(多台服務器)一般不用session。因為session只是保存在一台主機內存中,其它的主機是沒有;要讓所有的主機同步或共享session,還要另外處理。如果用戶多了session占用的內存會很大。所以tooken的優勢比較大

 



 

【知識點補充】  前端判斷用戶登錄狀態方法

  1、cookie 和  token 的區別:

     a、兩者cookie是http請求頭內置(標准)的字段;而token是人手動添加到頭部的字段【類似一個普通變量】。

     b、當存在一個 cookie,該 cookie 的值會在隨后的每次請求中被發送至服務器【即之后的請求都會帶上這個cookie值】。除非手動設置不 要帶上這么cookie。 https://www.w3cschool.cn/pegosu/pbjagozt.html

     c、而 token 只是請求頭的一個普通變量。只有在當前請求設置了這個變量才會攜帶在請求頭上。后面的請求,只要沒有手動設置,都不會再攜帶這個字段的。

     總結:將 token存儲到 cookie中,這樣 token 值就有 cookie 的特點。前端手動設置一次,之后的請求會自動攜帶;可以設置cookie的有效期。   https://www.cnblogs.com/BruceV/p/11956676.html

  2、前端判斷用戶登錄狀態方法:https://www.cnblogs.com/momo798/p/11663349.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM