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 API 和 ember.js 登录 Facebook