2017-10-16 21 views
0

所以我是身份驗證新手。我剛剛安裝使用護照,現在我登錄我的用戶應該先登錄。身份驗證和node.js:我如何根據登錄用戶呈現頁面?

router.post('/login/data', 
    passport.authenticate('local', {successredirect:'/', failureredir:'/login', failureFlash: true}), 
    function(req, res) { 
     // If this function gets called, authentication was successful. 
     // `req.user` contains the authenticated user. 
     res.redirect('/'); 
    }); 

它重定向我到我的主頁,但現在我想它在我的應用程序的每個頁面根據用戶的不同已登錄。如何根據登錄的用戶數據呈現我的頁面?

+0

你是如何呈現你的網頁?你在使用模板嗎?或者是所有的客戶端JavaScript? –

+0

嘿,我主要用ejs文件渲染我的頁面。 –

+0

我想知道如何訪問登錄用戶的數據,例如:res.render('index',{loggedInUserData:loggedInUserData} –

回答

2

在您的主頁的路徑中,您可以檢查是否有用戶認證,如果是,則使用他們的數據呈現模板。

router.get('/', function(req, res){ 
    if (req.user) { 
     res.render('index', { user: req.user }); 
    } else { 
     res.redirect('/login'); 
    } 
}); 

然後在您的.ejs文件中,您將有權訪問用戶的數據。

<h1>Username: <%= user.username %></h1> 
+0

這正是我需要的,非常感謝您的先生。美好的一天。 –