Этот вопрос относится к: Поддерживает ли класс Ember Octane Route использование миксинов? В Ember Octane официально объявлены устаревшими миксины.
Вопрос:
Каков наилучший вариант замены миксинов Ember и как его реализовать?
Контекст:
У меня есть собственные миксины, которые расширяют функциональность, предлагаемую ember-simple-auth (~ v1.8.2), которая не была доступна в то время, когда методы были созданы (см. ниже). В настоящее время я использую ember-simple-auth 3.0.0 https://github.com/simplabs/ember-simple-auth. В документации по github они, похоже, используют свои собственные миксины на Ember Octane, как вы можете видеть:
// my-engine/addon/routes/index.js
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
export default class IndexRoute extends Route.extend(AuthenticatedRouteMixin) {
triggerAuthentication() {
this.transitionToExternal('login');
}
}
Похоже, что я не единственный, у кого есть эта проблема, так как Simple Auth не знает какой маршрут они хотят go вниз либо: https://github.com/simplabs/ember-simple-auth/issues/2185
Опции:
- Чистые нативные классы, обмен функциями через наследование классов.
- Служебные функции, которые можно импортировать и использовать в нескольких классах.
- Службы, которые можно внедрять в несколько классов, совместно использующие функции и состояние между ними.
I иметь следующие миксины аутентификации:
- Маршрут приложения: Определяет, вошел ли пользователь в систему и включена ли для него двухфакторная аутентификация (2FA), и если это включен, он проверяет, что пользователь прошел проверку подлинности через 2FA. Это связано с тем, что простой auth не предлагал 2FA во время разработки mixin (s)
- Аутентифицируемый маршрут: Проверяет, что пользователь вошел в систему. Если он не вошел в систему, то пользователь перенаправляется на страницу входа. После входа в систему они направляются обратно на страницу, с которой они первоначально пытались go до
- Неаутентифицированный маршрут: Запрещает зарегистрированным пользователям переходить на определенные маршруты, которые вошли в систему, пользователи не должны go до