在前端

时间:2016-02-15 17:07:24

标签: node.js express backbone.js marionette passport.js

我的问题:如何在骨干网布局中打印经过身份验证的用户的用户名?

我正在使用一个堆栈:NodeJs,Express,MongoDB和BackboneJs(以MarionetteJs为框架)。

我可以创建并使用护照和蒸汽策略登录用户,该策略将用户存储在req.user

这是我的快速服务器文件的摘录,显示了我如何将经过身份验证的用户放在中间件中:

// use passport session
app.use(passport.initialize());
app.use(passport.session());

app.use(function(req, res, next) {
    res.locals.user = req.user;
    next();
});

但我不知道如何使用骨干访问前面的var。在我看来,这并不是很清楚。不要犹豫,在评论中提出更多所需的代码。

1 个答案:

答案 0 :(得分:0)

如果您希望用户使用Backbone模型,并且您希望获取适合Backbone范例,则可以创建一条将用户信息发送到前端的路由。

服务器

app.get('/user/:id', function(req, res, next) {
  if(req.params.id === 'me') {
    res.json(req.user);
  } else {
    res.status(500).send({ error: 'Invalid user id' });
  }
});

前端

var UserModel = Backbone.Model.extend({
  urlRoot: '/user'
});

var user = new UserModel({ id: 'me' });
user.fetch();

然后,您可以创建一个常规的ItemView,并在您认为合适的位置呈现用户信息。