如何使用AngularJS客户端在Loopback应用程序中创建会话?

时间:2015-08-12 18:21:53

标签: javascript angularjs node.js session loopbackjs

这是我的问题:

我正在使用AngularJS客户端创建一个带有环回(伟大的框架:)的Web应用程序,一切运行良好,但无法在不断开连接的情况下重新加载页面。这种行为是正常的,但是我想用“记住我”复选框来保持会话,并避免在页面重新加载时断开连接。访问令牌存储在localStorage中,我想我必须自己创建一个cookie但主要的一点是,如何避免断开连接?并重定向到禁止页面。那么我应该在服务器端还是客户端都这样做?我实际上迷路了...

如果您希望更好地了解该项目,我确实从github上的这个应用程序开始: https://github.com/strongloop/loopback-getting-started-intermediate

1 个答案:

答案 0 :(得分:4)

如果authToken已经存在于localStorage中,则不需要创建单独的cookie来存储它。您需要修改的部分是app.js,.run()块,它检查是否存在$rootScope.currentUser以确定您是否已登录,这将不会在浏览器重新加载时保留。

代码在Auth.js中创建$rootScope.currentUser。 app.js的.run()块只检查是否存在$rootScope.currentUser以确定您是否已登录。

因此,您需要更改检测已注销状态的方式,只需检查$rootScope.currentUser即可尝试实际调用User.getCurrent()或其他内容。如果您已登录,则呼叫将在标头中包含身份验证令牌,否则,您将获得401状态代码响应,并且在这种情况下您可以重定向到登录页面。