Ember-CLI中REST调用的全局异常处理

时间:2014-11-07 16:02:34

标签: rest exception ember.js ember-cli

在我的ember-cli应用程序中,我使用基于令牌的方法与服务器端的安全REST接口进行通信。由于令牌在一段时间后过期,我想实现以下行为:

一旦客户端尝试使用过期令牌访问REST服务,我希望将用户重定向到登录屏幕。

现在我在商店的find方法中使用'catch'函数,同时在路径的模型回调中获取数据。这非常有效。事实上,REST调用比引用模型存储的调用更多。

处理这种情况的最佳做法是什么?我应该在什么地方实施(例外)处理?由于这似乎是一个横切关注的问题,我想在一个中心位置实施它。

我更喜欢遵循乐观的方法,因此不会在每次转换时检查令牌的有效性。如果重定向将在应用程序尝试与REST接口通信时发生(即,只要它从服务器收到错误消息)就足够了。

由于

1 个答案:

答案 0 :(得分:0)

您可能需要考虑全局jquery挂钩,以便您可以统一响应Auth失败。看到:   http://api.jquery.com/category/ajax/global-ajax-event-handlers/

如果您想设置window.location或查找应用程序控制器并使用transitionToRoute()切换到登录路由,则由您决定。如果你使用Ember函数将你的代码放在你的jquery钩子函数的Ember.run.once()中,那么确保它在Ember运行循环中出现。

你也可以考虑使用Ember SimpleAuth(哪种方式将你锁定在它的范例中),甚至更好,更安全的长期建议IMO,首先按照以下教程从头开始:   - http://coderberry.me/blog/2013/07/08/authentication-with-emberjs-part-1/   - http://coderberry.me/blog/2013/07/08/authentication-with-emberjs-part-2/

然后这是更新的并且包含上面的教程:   - http://webcloud.info/blog/2014/04/07/emberjs-authentication-the-right-way-javascript-version/