这是我的问题:
我正在使用AngularJS客户端创建一个带有环回(伟大的框架:)的Web应用程序,一切运行良好,但无法在不断开连接的情况下重新加载页面。这种行为是正常的,但是我想用“记住我”复选框来保持会话,并避免在页面重新加载时断开连接。访问令牌存储在localStorage中,我想我必须自己创建一个cookie但主要的一点是,如何避免断开连接?并重定向到禁止页面。那么我应该在服务器端还是客户端都这样做?我实际上迷路了...
如果您希望更好地了解该项目,我确实从github上的这个应用程序开始: https://github.com/strongloop/loopback-getting-started-intermediate
答案 0 :(得分:4)
如果authToken已经存在于localStorage中,则不需要创建单独的cookie来存储它。您需要修改的部分是app.js,.run()
块,它检查是否存在$rootScope.currentUser
以确定您是否已登录,这将不会在浏览器重新加载时保留。
代码在Auth.js中创建$rootScope.currentUser
。 app.js的.run()
块只检查是否存在$rootScope.currentUser
以确定您是否已登录。
因此,您需要更改检测已注销状态的方式,只需检查$rootScope.currentUser
即可尝试实际调用User.getCurrent()
或其他内容。如果您已登录,则呼叫将在标头中包含身份验证令牌,否则,您将获得401状态代码响应,并且在这种情况下您可以重定向到登录页面。