2014-06-10 38 views
1

工廠驗證器的正確位置在哪裏?一旦我有了工廠的適當位置,我是否可以在我的初始化程序中註冊,因此Ember-cli - 簡單驗證::工廠驗證器的位置:自定義

container.register('authenticator:custom',application.CustomAuthenticator);

// the custom authenticator that authenticates the session against the custom server 
App.CustomAuthenticator = Ember.SimpleAuth.Authenticators.Base.extend({ 
    tokenEndpoint: '/v4/session', 

    restore: function(data) { 
     return new Ember.RSVP.Promise(function(resolve, reject) { 
      if (!Ember.isEmpty(data.token)) { 
       resolve(data); 
      } else { 
       reject(); 
      } 
     }); 
    }, 

    authenticate: function(credentials) { 
     var _this = this; 
     return new Ember.RSVP.Promise(function(resolve, reject) { 
      Ember.$.ajax({ 
       url:   _this.tokenEndpoint, 
       type:  'POST', 
       data:  JSON.stringify({ session: { identification: credentials.identification, password: credentials.password } }), 
       contentType: 'application/json' 
      }).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); 
       }); 
      }); 
     }); 
    }, 

    invalidate: function() { 
     var _this = this; 
     return new Ember.RSVP.Promise(function(resolve) { 
      Ember.$.ajax({ url: _this.tokenEndpoint, type: 'DELETE' }).always(function() { 
       resolve(); 
      }); 
     }); 
    }, 
}); 

謝謝!

回答

0

是的,你就是這麼做的。確保在您落入Ember.SimpleAuth.setup之前調用container.register。