我有一个我正在使用的风帆应用程序,我正在使用passport.js进行用户身份验证。我有登录工作,以及保护我的页面的策略,所有系统都去了。在我的一个页面上,用户正在输入信息,因此我需要获取当前登录用户的ID。我为此努力但最终想出了使用路线
在控制器中
$scope.$on('sailsSocket:connect', function(ev, data) {
sailsSocket.get(
'/get_user', {},
function(response) {
$scope.team_id = response.user;
sailsSocket.get(
'/status_update?sort=createdAt%20ASC&team_id='+$scope.team_id, {},
function(response) {
$scope.updates = response;
$log.debug('sailsSocket::/status_update', response);
});
});
});
和路线回调
get_user: function(req, res) {
res.json({user:req.session.passport.user});
},
这似乎工作正常,但我确实有几个问题。
a)这是正确的方法吗?通过路线将此信息提供给控制器?
b)嵌套套接字调用就像这样的好习惯吗?
我是这个堆栈的新手,仍然感觉我的方式通过它,所以任何反馈都非常感谢。
答案 0 :(得分:6)
尝试:
get_user: function(req, res) {
if ( !req.isAuthenticated() ) return res.forbidden();
return res.json({user: req.user});
}