NodeJs session 使用

以登錄爲例

基本實現原理:

  1. 客戶端通過賬號密碼登錄
  2. 服務器接收請求參數,生成sessionId 將sessionId存儲到客戶端的cookie中
  3. 下一次客戶端請求的時候帶上cookie ,服務器獲取cookie中的sessionId驗證身份
  4. 響應驗證通過的客戶端,也就是登錄成功的用戶

使用方法:

  1. node.js中需要藉助express-session實現session功能。使用 npm instsall express-session下載。
  2. 導入express-session模塊 const session = require('express-session');
  3. 配置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:'賬號或者密碼錯誤'})
        }
    })
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章