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

7
我是一位有用的助手,可以为您翻译文本。
我有一个正在使用 sails 的应用程序,并且正在使用 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) 嵌套 socket 调用是否是良好的实践?

我对这个技术栈还不熟悉,仍在摸索中,因此非常感谢任何反馈。


1
你的问题非常令人困惑。但是你可以通过 req.user 简单地访问已登录的用户。 - Mahammad Adil Azeem
1个回答

6

尝试:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接