Ember 简单验证 - 恢复 session 时未设置授权方
Ember Simple Auth - Authorizer not being setup when the session is restored
下面的代码目前有效,但是 如果我删除带有 _setup 的行,则传出请求没有授权 header。
感觉我不应该使用 _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);
});
恢复是一项在应用程序启动和存储更改时运行的便捷功能。据我所知,它不打算手动调用,但应该在应用程序启动时自动触发并从会话数据恢复。无论您尝试通过手动调用 restore 来做什么,您都可以在 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)
});
},
如果它对任何人有帮助,这就是我最终所做的。
routes/application.js
(代码片段)
this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
console.log('Reject reason', reason)
})
authenticators/application.js
export default Authenticator.extend({
authenticate(token) {
return this.restore(token);
}
});
下面的代码目前有效,但是 如果我删除带有 _setup 的行,则传出请求没有授权 header。
感觉我不应该使用 _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);
});
恢复是一项在应用程序启动和存储更改时运行的便捷功能。据我所知,它不打算手动调用,但应该在应用程序启动时自动触发并从会话数据恢复。无论您尝试通过手动调用 restore 来做什么,您都可以在 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)
});
},
如果它对任何人有帮助,这就是我最终所做的。
routes/application.js (代码片段)
this.get('session').authenticate('authenticator:custom', token).catch((reason) => {
console.log('Reject reason', reason)
})
authenticators/application.js
export default Authenticator.extend({
authenticate(token) {
return this.restore(token);
}
});