Sails.js + Passport.js:req.user未定义

3

我正在使用sails.js作为后端/API,angular js作为前端。

服务器和客户端位于不同的域。

当我使用passport验证用户时,我将sails的会话(session)与用户对象(user object)一起设置。

然后,当我通过前端启动新的请求来列出产品时,在我的服务器(sails.js)中req.user未定义,并且在我的会话中也没有我创建的用户。

如何解决这个问题?我想在我的后端将当前用户设置为会话(session),以避免每次都使用id检索它。这样可以获得更好的性能。

有任何想法吗?

谢谢,

2个回答

2

好的,我找到了答案。

您需要在angularjs app.js中添加以下行:

$httpProvider.defaults.withCredentials = true;

谢谢


1
当您登录/注册时,返回用户数据作为API,而不是使用seasons。

这是意味着我需要为所有请求发送我的用户对象吗?我认为这对性能不利。我已经发送了id。那么,我可以执行user.findone...但是是否有保持会话中对象的解决方案?Sails正在运行。它应该将对象保留在会话中。不是吗? - dalton5
对于登录请求,您应该传递凭据并返回令牌/用户数据+令牌。现在,每当您想发出请求时,请使用令牌。这样,您就不必每次都传递凭据。您应该在护照集合中为每个用户准备一个准备好的访问令牌。 - Matan Gubkin

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