Ember.js “如何在余烬中进行简单的授权更改”;用户名";在请求正文中输入用户名和密码

Ember.js “如何在余烬中进行简单的授权更改”;用户名";在请求正文中输入用户名和密码,ember.js,ember-simple-auth,Ember.js,Ember Simple Auth,我可以在模块内部对其进行更改,但在“npm安装”之后,这些更改将被丢弃您应该创建自己的身份验证程序,就像我创建的用于使用后端对用户进行身份验证的身份验证程序一样。我在“身份验证”函数中指定了要在请求中发送的字段: import Ember from 'ember'; import Base from 'ember-simple-auth/authenticators/base'; import request from 'ic-ajax'; export default Base.extend

我可以在模块内部对其进行更改,但在“npm安装”之后,这些更改将被丢弃

您应该创建自己的身份验证程序,就像我创建的用于使用后端对用户进行身份验证的身份验证程序一样。我在“身份验证”函数中指定了要在请求中发送的字段:

import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';
import request from 'ic-ajax';

export default Base.extend({

  tokenEndPoint: 'http://localhost:3000/api/sessions',

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

  authenticate: function(options) {
    return new Ember.RSVP.Promise((resolve, reject) => {
      Ember.$.ajax({
        url: this.tokenEndPoint,
        type: 'POST',
        crossDomain: true,
        data: JSON.stringify({
          session: {
            _email:    options.session.email,
            _password: options.session.password
          }
        }),
        contentType: 'application/json'
        // dataType: 'json'
      }).then(function(response){
        console.log('LOGIN OK: ' + response.auth_token);
        Ember.run(function(){
          resolve({
            token: response.auth_token
          });
        });
      }, function(xhr, status, error) {
        console.log('LOGIN ERROR: ' + xhr.responseText);
        var response = xhr.responseText;
        Ember.run(function(){
          reject(response);
        });
      });
    });
  },

  invalidate: function() {
    console.log('Invalidate Session....');
    return Ember.RSVP.resolve();
  }

});

您应该创建自己的验证器,就像我创建的那样,用我的后端对用户进行身份验证。我在“身份验证”函数中指定了要在请求中发送的字段:

import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';
import request from 'ic-ajax';

export default Base.extend({

  tokenEndPoint: 'http://localhost:3000/api/sessions',

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

  authenticate: function(options) {
    return new Ember.RSVP.Promise((resolve, reject) => {
      Ember.$.ajax({
        url: this.tokenEndPoint,
        type: 'POST',
        crossDomain: true,
        data: JSON.stringify({
          session: {
            _email:    options.session.email,
            _password: options.session.password
          }
        }),
        contentType: 'application/json'
        // dataType: 'json'
      }).then(function(response){
        console.log('LOGIN OK: ' + response.auth_token);
        Ember.run(function(){
          resolve({
            token: response.auth_token
          });
        });
      }, function(xhr, status, error) {
        console.log('LOGIN ERROR: ' + xhr.responseText);
        var response = xhr.responseText;
        Ember.run(function(){
          reject(response);
        });
      });
    });
  },

  invalidate: function() {
    console.log('Invalidate Session....');
    return Ember.RSVP.resolve();
  }

});

您不应该更改源,而应该覆盖自己应用程序中的方法。导出默认xx.extend({login:fun}}您不应该更改源代码,而应该覆盖您自己的应用程序中的方法。导出默认xx.extend({login:fun}})