NodeJs session 使用

以登陸爲例node

基本實現原理:

  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.在用戶登陸的時候保存用戶的信息express

    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:'帳號或者密碼錯誤'})
        }
    })
相關文章
相關標籤/搜索