溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

NodeJs session 使用

發(fā)布時間:2020-07-30 18:41:32 來源:網(wǎng)絡(luò) 閱讀:1359 作者:Cherish純紫 欄目:開發(fā)技術(shù)

以登錄為例

基本實現(xiàn)原理:

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

使用方法:

  1. node.js中需要借助express-session實現(xiàn)session功能。使用 npm instsall express-session下載。
  2. 導(dǎo)入express-session模塊 const session = require('express-session');
  3. 配置session
    app.use(session({
    secret: 'secret key', //使用隨機(jī)自定義字符串進(jìn)行加密
    saveUninitialized: false,//不保存未初始化的cookie,也就是未登錄的cookie
    cookie: {
                maxAge: 24 * 60 * 60 * 1000 //設(shè)置cookie的過期時間為1天
                activeDuration: 5* 60*1000, // 激活時間,比如設(shè)置為30分鐘,那么只要30分鐘內(nèi)用戶有服務(wù)器的交互,那么就會被重新激活。
    }
    }))

    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:'賬號或者密碼錯誤'})
        }
    })
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI