我目前正在开始使用Sails.js,并且我想将用户帐户添加到我的玩具应用程序,因此我安装了创建基于Passport的用户认证系统的“sails-auth”软件包。我可以通过发送POST /user
来创建新用户,我可以用POST /auth/local
登录。为什么在用sails-auth进行验证之后,/ user/me控制器中的“req.user”总是空的?
文档说:
身份验证通过一个POST本地策略来/ auth /中局部使用参数标识符(电子邮件)和密码)。这也将创建一个会话。有关更多信息,请参阅passport.local。
但是,当我尝试GET /user/me
时,应该返回会话中当前用户的控制器操作的路由,页面会给出空的响应。这是为什么发生?是否有某种配置步骤,我错过了?
顺便说一句,我没有改变或搞砸了sails-auth软件包。它仍然是全新的;在“我”的动作看起来是这样的:
me: function (req, res) {
res.ok(req.user);
}
编辑:我已经在帆-AUTH回购搜索问题找到了一个临时的解决方法。您可以从req.session.passport.user
获取字符串用户标识,而不是从req.user
获取用户对象。
谢谢,但我相信“用户”对象不是一个参数(从源头搜索)。这是通过AuthController中的回调设置的,当它使用Passport.js时(参见图片http://i.imgur.com/WySYqRW.png)。 此外,如何编辑“我”操作的源代码?它是npm模块的一部分。当我上次尝试编辑它(添加日志记录)时,日志消息没有显示。 –
@EricZhang嗯,也许我没有正确理解你的问题,所以你没有写'我'功能?但是你的路由表中有一条路由指向它? – Ryan
是的,我没有写'me'函数。该路线仅来自蓝图操作(UserController/me)。我认为,如果我要关闭它们,那么我将不得不通过“我”功能。对不起,如果它不明确! –