开发我的第一个 EmberJS 应用程序。整个应用程序要求用户登录。我试图围绕强制用户现在(最初加载页面时)和将来(当用户注销时)登录的最佳方式并且没有刷新)。
我已经处理了用户身份验证挂钩 - 现在我有一个 ember-data 模型和关联的存储,它连接处理授权用户和创建用户“会话”(使用 sessionStorage)。
我不知道如何做的是强制用户在跨路由转换时进行身份验证,包括根路由中的初始转换。我把这个逻辑放在哪里?如果我有一个身份验证状态管理器,我如何将它连接到路由中?我应该有一个根路由之外的身份验证路由吗?
注意:如果这个问题措辞不当或者我需要更好地解释什么,请告诉我,我很乐意这样做。
编辑: 我最终做了一些我认为更像灰烬的事情,尽管可能是一个混乱的实现。我有一个身份验证状态管理器,它存储当前用户的身份验证密钥以及当前状态。
每当有东西需要身份验证时,它只需向 authmanager 请求它并传递一个回调函数以使用身份验证密钥运行。如果用户没有登录,它会拉出一个登录表单,在用户登录之前暂停回调函数。
这是我正在使用的代码的一些选择部分。需要清理,我遗漏了一些东西。http://gist.github.com/3741751