以下代码目前有效但如果我使用_setup删除该行,则传出请求不具有授权标题。
我觉得我不应该使用_setup函数,因为它不在文档中。
我做错了什么?
我使用最新版本的Ember和Ember-Simple-Auth以及Oauth密码授予。
Ember.getOwner(this).lookup('authenticator:custom').restore(token).then(() => {
Ember.getOwner(this).lookup('session:main')._setup('authenticator:custom', token, true);
});
答案 0 :(得分:1)
如果它对任何人都有帮助,这就是我最终要做的事情。
<强>路由/ application.js中强> (代码段)
this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
console.log('Reject reason', reason)
})
<强>认证器/ application.js中强>
export default Authenticator.extend({
authenticate(token) {
return this.restore(token);
}
});
答案 1 :(得分:0)
Restore是一个便利功能,可在app启动和存储更改时运行。据我所知,它不打算手动调用,但应该在应用程序启动时自动启动并从会话数据恢复。无论您是通过手动调用还是尝试做什么,您都可以在authenticate钩子内部处理,将令牌作为参数传递。
对自定义身份验证器的规范调用应该类似于
session: Ember.inject.service('session'),
someFunction() {
let token = this.get('tokenSavedSomewhere')
this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
console.log('Reject reason', reason)
});
},