亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Passport.js 通過 Post 請求獲取當前登錄的用戶

Passport.js 通過 Post 請求獲取當前登錄的用戶

阿晨1998 2022-07-08 10:01:07
我遇到了 Passport.js 的問題,我想從 Post 請求中獲取當前登錄的用戶信息并處理一些內容。當我 console.log(req.user) 出現時,它顯示為“未定義”。設置和身份驗證一切正常,我還可以使用從第一個代碼片段中看到的 Get 請求檢索用戶信息。router.get('/', function(req , res){    console.log("The current logged in user is: " + req.user.first_name);    res.render('index.ejs' , {        user: req.user    });});^ 按預期返回用戶名router.post('/testPost' ,function(req , res){    console.log("The current logged in user is: " + req.user);    res.json({        status: "success"      });});^即使用戶登錄也返回未定義。兩年前,我在這里看到了同樣的問題How to get req.user in POST request using passport js,但沒有答案。
查看完整描述

1 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

這是因為用戶在您檢查時可能沒有登錄。


為確保用戶在訪問路由時已登錄,您應該有一個中間件來為您檢查它。


如果需要,您可以將其編寫為單獨的模塊并將其導入到您的每條路線中。


模塊:


module.exports = {

    EnsureAuthenticated: (req, res, next) => {

        if (req.isAuthenticated()) {

            return next();

        } else {

            res.sendStatus(401);

        }

    }

};

路線:


//Destructuring | EnsureAuth Function

const {

    EnsureAuthenticated

} = require('../path/to/the/module');



//You should get your user here

router.get('/', EnsureAuthenticated, (req, res) => {

console.log(req.user)

});


查看完整回答
反對 回復 2022-07-08
  • 1 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號