使用ember-data的ember-simple-auth自定义验证器

时间:2014-12-17 22:50:16

标签: ember.js ember-data ember-cli

我正在为具有嵌入式Web界面的C程序创建一个前端,该界面具有简单的REST API。我想使用ember-simple-auth和客户身份验证器以及与该api端点通信的授权器。

var Authenticator = AuthenticatorBase.extend({
    restore: function(data) {
       ...
    },

    authenticate: function(credentials) {
        var _this = this;
        return new Ember.RSVP.Promise(function(resolve, reject) {
            ... ??? ...
        });
    },
    
    invalidate: function() {
        var _this = this;
        return new Ember.RSVP.Promise(function(resolve) {
            ... ??? ...
        });
    },
});

在ember-simple-auth示例中,我看到使用Ember。$。ajax的自定义身份验证器实现,就像这样发布到服务器:

authenticate: function(credentials) {
    var _this = this;
    return new Ember.RSVP.Promise(function(resolve, reject) {
        Ember.$.ajax({
            url:         _this.tokenEndpoint,
            type:        'POST',
            data:        { username: credentials.identification,
                           password: credentials.password },
        }).then(function(response) {
            Ember.run(function() {
                resolve({ token: response.session.token });
            });
        }, function(xhr, status, error) {
            var response = JSON.parse(xhr.responseText);
            Ember.run(function() {
                reject(response.error);
            });
        });
    });
},
   

但我宁愿使用ember-data(我认为) - ember和ember-data的新东西,所以还不清楚。假设我的API端点是/ session,我的验证方法与ember-data有什么用?

相关说明:我正在使用ember-cli并运行ember服务器进行开发。如何告诉ember-data指向基于C的服务器进行REST调用?我正在尝试这个,但似乎没有影响到余烬数据调用 - 他们只是去了ember服务器:

// app/adapters/application.js
import DS from "ember-data";

export default DS.RESTAdapter.extend({
    host: 'localhost:48880',
    namespace: '/'
});

1 个答案:

答案 0 :(得分:0)

当您想要使用Ember数据时,您需要拥有一个Session模型,以便在创建实例时触发POST/sessions。我实际上并不认为这是有意义的,在这种情况下你并没有真正从使用Ember Data中获得任何好处 - 我建议只使用普通Ember.$.ajax并使用Ember Data作为实际模型数据