Sails.js + Passport.js获取当前登录用户

时间:2014-02-28 23:24:27

标签: angularjs node.js sails.js passport.js

我有一个我正在使用的风帆应用程序,我正在使用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)嵌套套接字调用就像这样的好习惯吗?

我是这个堆栈的新手,仍然感觉我的方式通过它,所以任何反馈都非常感谢。

1 个答案:

答案 0 :(得分:6)

尝试:

get_user: function(req, res) {
    if ( !req.isAuthenticated() ) return res.forbidden();

    return res.json({user: req.user});
}