дополнительная логика в разработке аутентификации - PullRequest
4 голосов
/ 27 апреля 2011

пожалуйста, как и где я могу разместить дополнительную логику аутентификации в устройстве?

Я добавил пользовательский столбец с именем expire_date в мою таблицу пользователей, и это столбец даты.

Мне нужно дополнительное требование, чтобы дата не должна быть позже сегодняшней даты, прежде чем они будут аутентифицированы.

пожалуйста, где я могу добавить эту логику?

спасибо

Ответы [ 2 ]

4 голосов
/ 13 октября 2012

Или вы можете переопределить active_for_authentication?метод в вашей пользовательской модели

def active_for_authentication?
 super && (test your dates here)
end

Если он неактивен, генерируется флэш-сообщение о том, что учетная запись не активна.Если вы хотите что-то другое, например «Этот пользователь еще не активен», измените настройку для :inactive в файле config/locales/devise.en.yml.Это взято в основном из Devise wiki .

1 голос
/ 27 апреля 2011

Создайте свой собственный контроллер, который наследуется от Devise :: SessionsController

app / controllers / users /sessions_controller.rb

class Users::SessionsController < Devise::SessionsController
...
Overwrite the new method
...
Change what else you need to change
...
end

Добавьте новый маршрут в файл маршрутов, и все готово.

...