我正在做一个简单的SPA,其中我使用Sails.JS作为REST API和AngularJS作为我的前端。 我现在正在努力弄清楚如何组合这两者来处理会话。使用Sails.JS和AngularJS处理会话/ cookie
如果我以错误的方式回答这个问题,请随时给我一些指导。
-
这是我的登录功能的一部分。当成功的登录发生时,我会将用户对象与会话一起返回给我的客户端。
user.js的
if(user) {
bcrypt.compare(userObj.password, user.encryptedPassword, function(err, match) {
if(err) {
res.json({rspMessage: 'Server error'}, 500);
}
if(match) {
req.session.user = user;
res.json(req.session.user); // return user data and session.
/* This returns something like this
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true },
user: {
username: 'admin',
id: '549f2ad213c64d3b2f3b9777'}
}
*/
}
});
}
login服务
这里是我的login服务并不真正做太多现在。我想这是跟踪会议的地方。我只是不确定如何去做这件事...没有太多的关于结合Sails + AngularJS的教程。
MyApp.factory('loginService', ['$cookieStore', '$http', '$rootScope', function($cookieStore, $http, $rootScope){
var _user = {};
return {
login: function(credentials) {
return $http.post('/user/login', credentials)
.then(function(result) {
return result.data;
});
}
}
}])
我想以某种方式检查会话对我的后端,看看它是否有效或是否已过期。如果会话仍然有效,即使用户关闭浏览器/刷新,用户也将保持登录状态。
建议,链接..任何有用的赞赏。
为此目的使用本地存储如何? – xmaestro
问题是你需要询问服务器会话是否仍然有效,因为它存储在服务器端。通过执行正常请求(例如发布表单)或安全地获取用户信息请求。 –