Ruby on Rails - добавление второго (чрезвычайно) простого слоя авторизации в приложение - PullRequest
0 голосов
/ 09 февраля 2012

Когда пользователь входит в свою учетную запись, ему предоставляется список «Сотрудников».

На данный момент, когда вы щелкаете сотрудника, он перенаправляет пользователя на страницу показа этого конкретного сотрудника, однако я хочу добавить в этот список аспект с защитой от булавки, прежде чем он отобразит страницу показа .

Я хочу добавить простой уровень аутентификации, который будет выглядеть следующим образом:

  1. Когда пользователь щелкает свое имя в списке, появляется текстовое поле, в котором запрашивается пин-код выбранного сотрудника.

  2. Пользователь вводит пин-код. При отправке сравнивает введенный контакт с столбцом «контакт» для записи этого сотрудника. Если он правильный, он предоставляет доступ к странице шоу выбранного сотрудника.

Это легко сделать в RoR? Это первое настоящее приложение, над которым я работал, поэтому у меня возникают проблемы с тем, чтобы обдумать пару таких понятий.

Большое спасибо!

1 Ответ

0 голосов
/ 09 февраля 2012

Взгляните на devise , это, безусловно, ваш лучший выбор для уровня аутентификации Ruby on Rails 3.


Лучше всего, если вы просто захотите добавить немного функциональности к существующему классу модели, добавив метод в следующем виде:

def validate_pin(pin_to_check)
    self.pin == pin_to_check
end

А затем вам просто нужно изменить контроллер сотрудника, чтобы метод show проверял, был ли предоставлен вывод (в идеале через переменную сеанса), в противном случае перенаправьте и запросите вывод с помощью дополнительного метода и маршрута Employee#request_pin в контроллере, который просит пользователя ввести пин-код, при успешном перенаправлении на маршрут Employee#show.

Обработка сеанса в контроллере

Чтобы записать переменную сеанса, вам понадобится метод Employee#check_pin (как маршрут POST), и вы просто будете использовать код:

session[:pin_valid] = true

Тогда вы проверите session[:pin_valid] в вашем Employee#show методе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...