Ember Simple Auth未设置承载令牌

时间:2015-11-10 16:52:44

标签: ember.js

无论出于何种原因,我的身份验证似乎正常用于登录,但是我无法访问任何使用Ember Data的路由。承载令牌似乎没有被设置。

这是我的登录表单组件

import Ember from 'ember';

export default Ember.Component.extend({
  session: Ember.inject.service(),

  actions: {
    authenticate() {
      let { identification, password } = this.getProperties('identification', 'password');
      this.get('session').authenticate('authenticator:oauth2', identification, password)
      .catch((reason) => {
        this.set('errorMessage', reason.error);
        console.log(reason.error);
      });
    }
  }

});

这是我的授权人(住在app / authorizers / application.js)

import OAuth2Bearer from 'ember-simple-auth/authorizers/oauth2-bearer';

export default OAuth2Bearer.extend();

这是我的身份验证员(住在app / authenticators / oauth2.js)

import OAuth2PasswordGrant from 'ember-simple-auth/authenticators/oauth2-password-grant';
import config from 'contacts/config/environment';

export default OAuth2PasswordGrant.extend({
  serverTokenEndpoint: config.APP.host + '/' + config.APP.namespace + '/authenticate',
});

如果有人发现我遗漏了什么,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:0)

我想我会把它写成答案,因为其他一切对我来说都很好

session: Ember.inject.service('session')

虽然如果是这种情况,你可以调用身份验证是没有意义的......嗯,你说登录似乎有效吗?

答案 1 :(得分:0)

如果您使用的是ember-data,则缺少应用程序适配器上的DataAdapterMixin。

请参阅此处的示例:

http://log.simplabs.com/post/131698328145/updating-to-ember-simple-auth-10

相关代码是:

// app/adapters/application.js
import DS from 'ember-data';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
  authorizer: 'authorizer:application'
});

DataAdapterMixin将令牌注入到请求头中,因此如果身份验证正在运行,但后续的API请求不起作用,则问题可能出现在此文件中。

如果您没有使用ember-data,那么您必须自己设置适配器以手动将令牌注入auth请求。您可以在上面的链接中看到一些示例。

编辑:修正了授权者的名称,你的名字住在authorizers / application.js中,所以授权人是“授权人:应用程序'