2014-02-28 133 views
7

我有一个我正在使用的sails应用程序,我正在使用passport.js进行用户身份验证。我有登录工作,以及保护我的网页,所有系统去的政策。在我的一个页面上,用户正在输入信息,所以我需要获取当前登录用户的ID。我挣扎着这一点,但最终想出了使用路由Sails.js + Passport.js获取当前登录用户

在控制器

$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

你提的问题是非常混乱的。但是你可以简单地通过'req.user'访问用户登录。 – Darwesh

回答

6

尝试:

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

    return res.json({user: req.user}); 
} 
相关问题