不知道有关简单身份验证令牌,但我使用的余烬,简单权威性和我加入令牌延伸的基础授权各自发出的请求,如下图所示:
// app/authorizers/my-own-authorizer.js
import Base from 'ember-simple-auth/authorizers/base';
export default Base.extend({
/**
* Authorizes all outgoing requests by a session-token that has been received during a login process.
* If such a session token does not exist, it does not add anything.
* @override
* @param {Object} sessionData received from the backend on a successful login
* @param {Function} addHeaderFunction function that appends a custom header into the next request
*/
authorize(sessionData, addHeaderFunction){
const sessionToken = Ember.get(sessionData, "meta.session-token");
if (Ember.isPresent(sessionToken)) {
addHeaderFunction('authorization', sessionToken);
}
}
});
不要忘记调整您的应用程序适配器,以便它使用授权人:
// app/adapters/application.js
...
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';
export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
....
authorizer: 'authorizer:my-own-authorizer',
...
}
非常感谢您的回答,但我正在寻找更简单的东西。我终于发现我可以通过调用self.get(“session.data.authenticated.auth_token”)来访问令牌。 – Jack
我曾经这样做过,但docs明确地讨论了扩展authorizer和重写'authorize()'函数。我发现现在的代码更具可读性,因为我不必将不属于他们的问题混合在一起。 – Pavol
使用ember-simple-auth-token我只需要使用DataAdapterMixin。其他的一切都是自动处理的...... – acorncom