身份验证和node.js:我如何根据登录用户呈现页面?

身份验证和node.js:我如何根据登录用户呈现页面?

问题描述:

所以我是身份验证新手。我刚刚安装使用护照,现在我登录我的用户应该先登录。身份验证和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} –

在您的主页的路径中,您可以检查是否有用户认证,如果是,则使用他们的数据呈现模板。

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

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