Обновить токен ember
Маркер доступа к моему приложению истекает каждые 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');
}
}
});
1 ответ
Вы должны сделать это в своем пользовательском аутентификаторе, поскольку аутентификатор отвечает за получение токенов и управление ими, а также за состояние аутентификации в целом. Вы можете просто запланировать таймер, который обновляет токен через некоторое время после начальной аутентификации. Как только токен был обновлен, аутентификатор может вызвать sessionDataUpdated
Событие, которое сеанс будет обрабатывать автоматически.
Проверьте реализацию OAuth2PasswortGrantAuthenticator для примера того, как обновить токены из аутентификатора.