【问题标题】:Ember Simple Auth PromiseEmber 简单身份验证承诺
【发布时间】:2014-07-19 10:15:30
【问题描述】:

我正在尝试使用 Ember Simple Auth 处理错误消息,我正在使用设计扩展。

文件:app/controllers/login.js

import Ember from 'ember';
import LoginControllerMixin from 'simple-auth/mixins/login-controller-mixin';

export default Ember.Controller.extend(LoginControllerMixin, {
  authenticator: 'simple-auth-authenticator:devise',
  identification: null,
  password: null,
  loginError: false,
  isSubmitting: false,

  actions: {
    authenticate: function() {
      var data = this.getProperties('identification', 'password');

      this._super(data);

      this.set('password', null);

      this.setProperties({
        loginError: true,
        loginResponse: 'login error'
      });
    }
  }
});

目前我总是收到错误消息。我不知道如何仅在发生错误时显示它。我试过了

this._super(data).then(function({
    // Error handler
});

然后我收到错误“_super() 未定义”。

【问题讨论】:

    标签: ember.js devise ember-simple-auth


    【解决方案1】:

    在上面的代码中,无论登录是否成功,您总是设置错误。您需要做的是自己触发会话身份验证:

    this.get('session').authenticate(this.get('authenticator'), data).then(function() {
      …//success
    }, function(error) {
      …//error
    });
    

    【讨论】:

    • 我添加了一个更改,因此在下一个版本中LoginControllerMixin#authenticate 将返回会话返回的承诺,因此您可以实际执行此操作。_super(data).then(function({ /*success*/ }, 函数({ /*error*/ });
    猜你喜欢
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多