Ember.js Ember Simple Auth未设置承载令牌
无论出于何种原因,我的身份验证似乎在登录时正常工作,但我无法访问任何使用余烬数据的路由。持票人代币似乎未设置 这是我的登录表单组件Ember.js Ember Simple Auth未设置承载令牌,ember.js,Ember.js,无论出于何种原因,我的身份验证似乎在登录时正常工作,但我无法访问任何使用余烬数据的路由。持票人代币似乎未设置 这是我的登录表单组件 import Ember from 'ember'; export default Ember.Component.extend({ session: Ember.inject.service(), actions: { authenticate() { let { identification, password } = this.
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中)
这是我的验证器(位于app/authenticators/oauth2.js中)
如果有人看到我遗漏了什么,请告诉我。谢谢大家! 我想我应该把这个写下来作为一个答案,因为其他的一切对我来说都很好
session: Ember.inject.service('session')
虽然如果是这样的话,那么调用authenticate是没有意义的。。。嗯,你说登录似乎有效吗?我想我应该把这个写下来作为一个答案,因为其他一切对我来说都很好
session: Ember.inject.service('session')
虽然如果是这样的话,那么调用authenticate是没有意义的。。。嗯,您说过登录似乎可以正常工作吗?如果您使用的是余烬数据,则您的应用程序适配器上缺少DataAdapterMaxin 请参见此处的示例: 有关守则如下:
// 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数据,那么您必须自己设置适配器,以便将令牌手动注入到auth请求中。你可以在上面的链接上看到一些例子
编辑:修复了授权人的名称,您的名称位于authorizers/application.js中,因此授权人是“authorizer:application”如果您使用的是ember数据,则您的应用程序适配器上缺少DataAdapterMaxin 请参见此处的示例: 有关守则如下:
// 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数据,那么您必须自己设置适配器,以便将令牌手动注入到auth请求中。你可以在上面的链接上看到一些例子
编辑:修复了授权人的名称,您的名称位于authorizers/application.js中,因此授权人是“authorizer:application”尝试此:session:Ember.inject.service('session')尝试此:session:Ember.inject.service('session')。inject.service的“session”参数不是严格要求的(尽管我总是为了清楚起见)。只要键与服务名称匹配,就可以使用.service()调用它。如果我想给密钥命名为mySession或类似的名称,那么我需要使用mySession:Ember.inject.service(‘session’)哈,别开玩笑了,谢谢!学习新东西很好。看到你的答案后,我意识到这更有道理.inject.service的'session'参数并不是严格要求的(尽管为了清晰起见,我总是使用它)。只要键与服务名称匹配,就可以使用.service()调用它。如果我想给密钥命名为mySession或类似的名称,那么我需要使用mySession:Ember.inject.service(‘session’)哈,别开玩笑了,谢谢!学习新东西很好。看到你的答案后,我意识到这更有道理