【发布时间】:2015-02-01 00:31:33
【问题描述】:
我有一个订购单,用户需要先注册才能订购,所以我可以创建一个帐户然后像这样处理订单。
router.post('/project/new', passport.authenticate('local-signup'), function(req, res) {
gateway.customer.find(req.user.id, function(err, customer) {
if(customer) {
// method for a customer inside the vault
} else {
// add a non existing customer to vault
}
});
});
问题是如果有人已经登录并想要下订单。我需要检查他们是否已登录,如果是,那么我可以继续下订单,如果不是,那么我需要进行身份验证然后登录。
所以这样的事情对我来说很有意义。
//prefer this!!
router.post('/project/new', function(req, res) {
if(req.user) {
// do stuff for existing logged in user
} else {
// user is NOT logged in need passport
passport.authenticate('local-signup', function(err, user, info) {
// do stuff for new user
})(req, res, next);
}
});
问题是我得到了next is not defined,我在passportjs 文档中看到Jared 在get 路由中使用了这个自定义回调。
有人可以帮我做一个自定义回调吗?谁有更好的策略?
【问题讨论】:
标签: javascript node.js express passport.js