Ember-simple-auth自定义授权器未调用

时间:2023-01-30 01:18:42

I'm trying to implement custom auth with ember-simple-auth and I stuck at the start. I have app/autheticators/digest.js

我正在尝试使用ember-simple-auth实现自定义身份验证,并且我在开始时陷入困境。我有app / autheticators / digest.js

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

export default Base.extend({
  restore(data) {
    //
  },
  authenticate(email, password) {
    console.log(email, password);
    return new Ember.RSVP.Promise(function(resolve, reject) {
      Ember.run(function() {
          resolve({email: email, password: password});
        });
    });
  },
  invalidate(data) {
    //
  }
});

app/authorizers/digest.js

应用程序/授权人/ digest.js

import Base from 'simple-auth/authorizers/base';  
import Ember from 'ember';

export default Base.extend({  
  header: function() {
    return "test-digest";
  },

  authorize: function(sessionData, block) {
    console.log('authorize...');
    block('Authorization', this.get('header'));
  }
});

Login component:

登录组件:

import Ember from 'ember';
import CryptoJS from 'npm:crypto-js';

export default Ember.Component.extend({
    session: Ember.inject.service('session'),
    actions: {
        login() {
            let { email, password } = this.getProperties('email', 'password');
            this.get("session").authenticate('autheticator:digest', 
                email, CryptoJS.SHA256(password).toString()).catch((reason) => {
                this.set('errorMessage', reason.error);
            });
        }
    }

});

Authentication called properly (I hope), but "authorize" in authorizer never called. I also tried add some values to ENV:

身份验证调用正确(我希望),但授权器中的“授权”从未调用过。我也试过给ENV添加一些值:

  ENV['simple-auth'] = {
    authorizer: 'authorizer:digest',
    crossOriginWhitelist: ['http://prod-drunkedguru.rhcloud.com:80/'] // ['*'] I also tried
  }; 

But nothing changed. What I'm doing wrong?

但没有改变。我做错了什么?

P.S. I'm using EmberJS 1.13.0 with EAS 1.0.

附:我在EAS 1.0中使用EmberJS 1.13.0。

1 个解决方案

#1


1  

I assume you're using ESA 1.0. In that version the authorizer isn't automatically called anymore but you need to call it manually. There is the DataAdapterMixin that you can use to automatically authorizer Ember Data requests though. See this blog post for guidance on migrating to 1.0: http://log.simplabs.com/post/131698328145/updating-to-ember-simple-auth-10

我假设你正在使用ESA 1.0。在该版本中,授权程序不再自动调用,但您需要手动调用它。您可以使用DataAdapterMixin自动授权Ember Data请求。有关迁移到1.0的指导,请参阅此博客文章:http://log.simplabs.com/post/131698328145/updating-to-ember-simple-auth-10

#1


1  

I assume you're using ESA 1.0. In that version the authorizer isn't automatically called anymore but you need to call it manually. There is the DataAdapterMixin that you can use to automatically authorizer Ember Data requests though. See this blog post for guidance on migrating to 1.0: http://log.simplabs.com/post/131698328145/updating-to-ember-simple-auth-10

我假设你正在使用ESA 1.0。在该版本中,授权程序不再自动调用,但您需要手动调用它。您可以使用DataAdapterMixin自动授权Ember Data请求。有关迁移到1.0的指导,请参阅此博客文章:http://log.simplabs.com/post/131698328145/updating-to-ember-simple-auth-10