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

How to create session inside Loopback app with an AngularJS client?

这是我的问题:

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

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

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

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

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