Авторизация EmberJS и роли пользователей: лучшие практики

Предположим, я создаю веб-приложение, с помощью которого пользователи могут делать и продавать хот-доги. Я использую EmberJS для клиента.

Фон:

  1. В настоящее время я реализую аутентификацию с помощью Ember-Simple-Auth, которая кажется довольно стандартной библиотекой для использования с Ember для входа в систему, наличия пользовательских сеансов или токенов.

  2. Есть два типа пользователей - повара и потребители.

  3. Я заставлю свой сервер определить, является ли конкретный пользователь поваром или едоком, а затем поместит эту информацию в файл cookie на странице, предоставляемой клиенту.

  4. У меня есть навигационная панель (которая является изолированным компонентом Ember), на которой будет кнопка «Домой» и еще одна кнопка. Если пользователь является поваром, кнопка «Приготовить» должна отображаться, а кнопка «Потребитель» будет скрыта, и наоборот, если пользователь является потребителем.

Мой вопрос: каков оптимальный/рекомендуемый способ реализации этих пользовательских ролей с помощью Ember Simple Auth?

TLDR: необходимо разрешить пользователю доступ к элементам на веб-странице в зависимости от роли пользователя. Каков текущий рекомендуемый способ сделать это в EmberJS?


person Tom Mathew    schedule 26.09.2016    source источник


Ответы (1)


Посетите https://github.com/minutebase/ember-can.

Также я не рекомендую, чтобы сервер устанавливал для этого файл cookie. Почему бы просто не использовать ember simple auth (ESA) для установки этого в сеансе пользователя? Его можно передать в ESA с сервера, когда пользователь входит в систему.

person David Duncan    schedule 26.09.2016
comment
Хорошо, когда пользователь входит в систему, сеанс запускается сервером. Переменные сеанса включают такие вещи, как уровень доступа. Является ли плохой практикой оставлять уровни ролей в файле cookie, даже если они передаются через HTTPS? Кроме того, да, я использовал свойство данных объекта сеанса. Спасибо хоть. - person Tom Mathew; 26.09.2016
comment
Не похоже, что вы используете ESA для управления сеансами, если он запущен сервером - person David Duncan; 27.09.2016