Ruby on Rails + Devise + Existing User Table == Нет подтверждения - PullRequest
2 голосов
/ 24 августа 2011

У меня новая система рельсов, которую я создаю. Я нахожусь в процессе настройки устройства для аутентификации. Моя проблема в том, что все мои существующие пользователи не имеют токенов подтверждения, и я не могу найти способ передать им токены. Я ожидал, что при входе в систему пользователю будет предложено повторно отправить токен, но это не так. Кроме того, я не могу понять, как изменить процесс аутентификации, чтобы добавить эту ссылку, когда пользователь успешно аутентифицируется.

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

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Это связано с подтвержденным вариантом устройства. Здесь вы должны сделать две вещи. Сначала вы должны установить период времени, который вы позволяете ответить на подтверждение.

Чтобы установить период времени, который пользователь должен подтвердить, вы должны настроить инициализатор устройства и раскомментировать одну строку:

# config/initializers/devise.rb
config.confirm_within = 2.days

Далее необходимо отправить письмо с подтверждением вручную (эта функция также создаст токен подтверждения, если он не существует), это можно сделать с помощью консоли или в сценарии:

# in console
User.find(1).send_confirmation_instructions

Я бы проверил это и написал бы следующий скрипт:

# script.rb
User.all.each do |user|
  user.send_confirmation_instructions
end

Это очень медленный процесс, если у вас есть тысячи пользователей, но вы будете выполнять эту работу.

Проверьте это: Подтверждаемый

1 голос
/ 10 сентября 2011

Просто подтвердите ваши существующие пользователи, как это

User.all.each do |user| user.confirm! end

в консоли или в скрипте.

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