Параметр Rails Devise - PullRequest
       30

Параметр Rails Devise

0 голосов
/ 31 октября 2011

Есть ли способ придумать, что я могу просто отправить URL-адрес, который содержит имя пользователя или пароль электронной почты, и он регистрирует пользователя или запускает новые сеансы, вместо того, чтобы войти в систему через форму (я хочу просто отправить в логине и пароле и войдите в систему или зарегистрируйте его)

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

Обычно это плохая идея по многим причинам, но если ваш вариант использования требует этого, ничто не мешает вам сделать это.

Поскольку пользовательские записи Devise - это просто стандартные записи Active Record, вы можете использоватьНаходит на них, как на любом другом объекте:

u = User.find(:first, :conditions => {:username => 'foo'})

И создают их в основном, как на любом другом объекте:

u = User.new
u.username = 'jsmith'
u.password = 'password'
u.password_confirmation = 'password'
u.save

Devise предоставляет valid_password? метод экземпляра, который выможно использовать для проверки пароля извлеченного объекта:

u.valid_password?('monkey')

И с любого контроллера вы можете вызвать sign_in с извлеченным пользовательским объектом:

sign_in(:user, u)

1 голос
/ 31 октября 2011

Посмотрите на модуль Devise " TokenAuthenticable ", который дает пользователю уникальный ключ входа, хотя он не совпадает с его адресом электронной почты или паролем.

0 голосов
/ 31 октября 2011

Вы можете делать все это без использования устройства. В любом другом случае вам следует переписать разработанную систему безопасности.

...