我的应用访问令牌每10分钟到期一次。我使用ember simple auth进行身份验证,但它是一个自定义身份验证器,因为我不只是用户名和密码字段。我想使用ember-simple-auth-token,但是调用授权:jwt在我的适配器中,它不起作用,显然是因为我没有使用它的身份验证器。
所以,我正在考虑使用每十分钟更新一次令牌的服务,类似于http://www.davekerr.co/programming/2015/05/17/add-a-polling-service-to-your-ember-app/,所以我的问题是如何覆盖sessionData令牌。
我的自定义授权程序文件代码如下所示:
import Ember from 'ember';
import Base from 'ember-simple-auth/authorizers/base';
export default Base.extend({
authorize(sessionData, block) {
if (!Ember.isEmpty(sessionData.token)) {
block('Authorization', 'Bearer '+sessionData.token);
block('Content-Type', 'application/json');
}
}
});
答案 0 :(得分:0)
您应该在自定义身份验证器中执行此操作,因为身份验证者通常负责获取和管理令牌和身份验证状态。您可以简单地安排一个计时器,在初始身份验证后的某个时间更新令牌。令牌刷新后,验证者可以触发会话将自动处理的sessionDataUpdated
event。
检查implementation of the OAuth2PasswortGrantAuthenticator以获取如何从验证者更新令牌的示例。