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

Posted

技术标签:

【中文标题】Sails.js + Passport.js 获取当前登录用户【英文标题】:Sails.js + Passport.js getting current logged in user 【发布时间】:2014-04-02 04:42:34 【问题描述】:

我有一个正在使用的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) 嵌套套接字调用是否像这种好习惯?

我是这个堆栈的新手,并且仍然在摸索中,因此非常感谢任何反馈。

【问题讨论】:

你的问题很混乱。。但是你可以通过req.user访问登录的用户。 【参考方案1】:

试试:

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

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

【讨论】:

以上是关于Sails.js + Passport.js 获取当前登录用户的主要内容,如果未能解决你的问题,请参考以下文章

passport.js 使用sails.js 验证弹出窗口

使用 passport.js、sails.js API 和 ember.js 登录 Facebook

使用 Passport.js 和 Sails.js 注册后如何重定向到特定位置?

Sails.js 0.11 和护照:“缺少凭据”错误

Passport.js 在 req.login 上失败

登录时如何“记住”用户-passport.js-phonegap