Я использую AuthLogic для активации / аутентификации новых пользователей, и в настоящее время я использую данные сеанса, чтобы система знала, куда отправить нового пользователя после его активации (например, какой проект показать его). Таким образом, он использует ряд переменных, таких как session [: project_id], которые должны присутствовать при первой активации пользователем своей учетной записи.
Проблема заключается в следующем: что произойдет, если данные сеанса отсутствуют при активации пользователя? Несколько случаев:
- Пользователь регистрируется в одном браузере, но затем открывает свое электронное письмо активации в другом,
- Пользователь регистрируется / активируется в режиме инкогнито,
- Пользователь ждет день или два, прежде чем активировать свою учетную запись.
Из того, что я могу сказать, использование данных сеанса представляет собой уязвимость UX, потому что, когда она не сохраняется, пользователь оказывается в бесполезном месте (или, что еще хуже, ошибка 500 из-за ожидания, что переменная сеанса не существует) .
По моему мнению, необходимо, чтобы такая информация, как project_id (и несколько других переменных), надежно сохранялась от регистрации до активации. Я опасаюсь создания новых полей базы данных для этой ограниченной и временной цели, но я открыт для всех предложений. Как я могу закрыть эту лазейку?
В ответ на ответ Омара:
В UserMailer.rb я определил активацию_инструкции (пользователь), которая рассылает письмо по активации_инструкции новым пользователям. На данный момент вижу следующее:
def activation_instructions(user)
@user = user
@account_activation_url = activate_url(user.perishable_token)
mail(:to => "#{user.login} <#{user.email}>", :subject => "Welcome!" )
end
Как я могу добавить параметры get к этому? Скажите, у меня есть параметры project_id и category_id?