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

时间:2017-10-16 23:32:35

标签: javascript node.js authentication passport.js

所以我是认证的新手。我只是使用Passport设置我的登录,现在我的用户应该登录。

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('/');
    });

它将我重定向到我的主页,但现在我希望我的应用中的每个页面都有所不同,具体取决于登录的用户。如何根据登录用户的数据呈现我的页面?

1 个答案:

答案 0 :(得分: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>