login - 当 ember-data 收到 http 状态 401 时,Ember.js 应用程序应该重定向到登录

标签 login ember.js ember-data

我希望我的 Emberjs 应用程序处理未经授权的 HTTP 状态 (401)。

该应用程序使用 ember-data 来集成一个 JSON API (Rails)。

当收到 HTTP 状态未授权 (401) 时,客户端层 (Emberjs) 应重定向到提示登录的 Emberjs View /模板。

如何为整个应用程序执行此操作?

最佳答案

我正在研究同一主题,看起来这里的信息有点过时了。使用 Ember 1.7.0,您应该处理路由中的错误。如果您想将此应用到整个应用程序,您应该将其添加到您的 ApplicationRoute类,像这样

// app/routes/application.js
import Ember from 'ember';

var ApplicationRoute = Ember.Route.extend({
    actions: {
        error: function (error, transition) {
            // Handle the error here
            if (error && error.status === 401) {
                return this.transitionTo('login');
            }
        }
    }
});

export default ApplicationRoute;

这与文档描述的方式相同:read here

更新:在较新版本的 Ember 和 Ember Data 中,错误对象结构会有所不同。状态将是一个字符串,包含在一个错误对象中,在一个错误数组中:
actions: {
  error: function(error, transition) {
    if (error.errors[0].status === '401') {
      this.transitionTo('sign-in');
    }
  }
}

关于login - 当 ember-data 收到 http 状态 401 时,Ember.js 应用程序应该重定向到登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16078374/

相关文章:

ruby-on-rails - 我应该限制登录 rails 的尝试吗?

perl - 使用 perl 登录的表单提交

login - keycloak 初始登录不适用于管理员用户名和密码

javascript - 如何在ember js中以一对多关系将父对象添加到子对象

css - 在 Ember 和 SortMixin 中更改 CSS 类

asp.net-mvc - 我如何在 ASP.Net MVC 中将登录 View 实现为 jQueryUI 对话框

javascript - Ember 与数据 - 路线模型无法一致工作

javascript - 使用 query() 方法不使用 Ember.js 从模型中检索任何信息

ember.js - 提交后如何强制 ember-data 刷新对象?

ember.js - IsValid 和 Ember 数据