2014-09-24 78 views
2

好的,这是我的路由器代码,我试图访问用户帐户信息,当他们在主页上。到目前为止没有运气......我在这里做错了什么?Stormpath用户信息

// Render the dashboard page. 
router.get('/home', function (req, res) { 
    if (!req.user || req.user.status !== 'ENABLED') { 
    return res.redirect('/login'); 
    } 



    console.log('User:', req.user.email, 'just accessed the /home page!'); 


    //user: req.user 

    res.render('home', { 
    title: 'Home', 
    user:req.user.username 
    } 

); 


}); 
+0

您好。您能告诉我们您正在使用哪个Stormpath存储库,例如[stormpath-express-sample](https://github.com/stormpath/stormpath-express-sample)或[stormpath-express](https:// github .com/stormpath/stormpath-express)?谢谢! – robertjd 2014-09-24 17:52:43

+0

嗨,它的stormpath表示样本。 – user61026 2014-09-24 20:29:07

回答

1

你的例子看起来是正确的,但我会在渲染调用中分配整个用户对象(现在你只是传递用户名)。

所以,如果你放在这routes/index.js

// Render the 'home' page if logged in and account is not disabled 
router.get('/home', function (req, res) { 
    if (!req.user || req.user.status !== 'ENABLED') { 
    return res.redirect('/login'); 
    } 

    res.render('home', { 
    title: 'Home', 
    user: req.user 
    }); 

}); 

然后在views/home.jade的观点是这样的:

html 
    head 
    title=title 
    body 
    p Hello, #{user.username} 
+0

我试图使用,并得到了回应: – user61026 2014-09-25 17:10:27

+0

[对象] [对象] – user61026 2014-09-25 17:11:53

+0

你可以给我一个例子,使用'router.get('/ home',函数(req,res){'和用户对象请一定有一些我很小的东西... – user61026 2014-09-25 17:13:52

2

问题(看来)是你没有loginRequired中间件设置在你的路线上。你应该修改你的函数签名:

router.get('/home', stormpath.loginRequired, function(req, res) { 
    ... 
}); 

这将迫使用户正确地评价=)

+0

以及我不知道用户只能通过登录访问此区域..我只是无法获得stormpath以返回任何用户数据。 – user61026 2014-09-28 15:50:20

+0

您必须具有loginRequired内容才能让stormpath库检索用户的详细信息路线。 – rdegges 2014-09-29 16:32:40

+0

nope这只是崩溃的应用程序。 – user61026 2014-09-29 16:51:42