以登錄爲例
基本實現原理:
- 客戶端通過賬號密碼登錄
- 服務器接收請求參數,生成sessionId 將sessionId存儲到客戶端的cookie中
- 下一次客戶端請求的時候帶上cookie ,服務器獲取cookie中的sessionId驗證身份
- 響應驗證通過的客戶端,也就是登錄成功的用戶
使用方法:
- node.js中需要藉助express-session實現session功能。使用 npm instsall express-session下載。
- 導入express-session模塊 const session = require('express-session');
- 配置session
app.use(session({ secret: 'secret key', //使用隨機自定義字符串進行加密 saveUninitialized: false,//不保存未初始化的cookie,也就是未登錄的cookie cookie: { maxAge: 24 * 60 * 60 * 1000 //設置cookie的過期時間爲1天 activeDuration: 5* 60*1000, // 激活時間,比如設置爲30分鐘,那麼只要30分鐘內用戶有服務器的交互,那麼就會被重新激活。 } }))
4.在用戶登錄的時候保存用戶的信息
app.post('/login', async (req,res) => { const { email, password } = req.body; let user = await User.findOne({ email: email }); if (user.password == password){ req.session.user = user;//登錄成功將用戶信息存儲到session下面 res.redirect('/home/'); }else{ res.render('login.art',{error:'賬號或者密碼錯誤'}) } })