node學習之cookie和session

2022-05-10 19:46:11 字數 2202 閱讀 6669

c什麼是cookie

cookie設計的初衷是 維持瀏覽器和服務端的狀態。http是無狀態的,服務端不能跟蹤客戶端的狀態。 瀏覽器第一次向伺服器傳送請求,伺服器會返回乙個cookie給客戶端瀏覽器,瀏覽器下一次傳送請求時,會攜帶cookie。

而node.js 的框架express 因為保持高效能, 沒有封裝太多的功能,而是按需載入的形式, 引入自己需要的中介軟體。而cookie 常用的外掛程式是cookie-parser

讀取cookie: 需要借助cookie-parser。

//

引入cookieparser 框架,讀取客戶端傳送的cookie

const express = require('express');

const cookieparase = require('cookie-parser');

(req,res) )

傳送cookie, 不需要借助中介軟體, 可以直接用 res.cookie();

刪除cookie:   res.clearcookie(名字);

cookie 簽名

1 const express = require('express');

2 const cookieparser = require('cookie-parser');34

//隨機生成的字串

5var signstr = 'xadsafeowirw'67

89//需要將密匙傳給cookieparser, 在接收資料的時候,進行解析。

1011

(req, res) )

2021

//有沒有簽名的cookie,獲取方式不一樣。

22 console.log('無簽名', req.cookies);

23 console.log('帶簽名',req.signedcookies);

session和基於cookie的。 存在於伺服器,相對cookie安全,但session也存在session劫持的風險, 所以需要一串很長很多的秘鑰陣列來增加破解的難度。同時設定manage過期時間, 減少留給壞人破解時間。

node中有的中介軟體 是cookie-session

1 const express = require('express');

2 const cookieparser = require('cookie-parser');

3 const cookiesession = require('cookie-session');45

6789

10//

cookiesession 必須放在cookieparser後面

1112

//session的秘鑰,防止session劫持。 這個秘鈅會被迴圈使用,秘鑰越長,數量越多,破解難度越高。

13 keys: ['aaa', 'bbb', 'ccc'],

14//

session過期時間,不易太長。php預設20分鐘

15 maxage: 60*60,

16//

可以改變瀏覽器cookie的名字

17 name: 'session'

18}));

19(req, res) else

28 console.log(req.session['count'])

29 res.send('ok')

30})

3233

//刪除 delete req.session

瀏覽器中可以看到,伺服器通過respond的set-cookie返回cookie

session是返回的cookie id, session.sig 是session簽名,作用是知道session是否被修改過

node學習之 什麼是node?

i o input output 輸入輸出流 正常情況下i o的操作都是阻塞的 ajax同步是阻塞的 有 網路請求 資料庫處理 檔案的讀寫。1.防止甩鍋,明確資料互動的錯誤問題在誰。api介面文件是後端大神寫的,返回資料沒有,那麼是誰的鍋?2.能夠書寫api。全棧 3.了解前後端的互動流程 js不僅...

學習筆記之cookie

cookie意為 甜餅 是由w3c組織提出,最早由netscape社群發展的一種機制。目前cookie已經成為標準,所有的主流瀏覽器如ie netscape firefox opera等都支援cookie。由於http是一種無狀態的協議,伺服器單從網路連線上無從知道客戶身份。怎麼辦呢?就給客戶端們頒...

node學習之express 路由

本文使用的express generator生成的專案 get,post,put,head,delete,options,trace,copy,lock,mkcol,move,purge,propfind,proppatch,unlock,report,mkactivity,checkout,mer...