Как сохранить данные сеанса через регистрацию пользователя - PullRequest
1 голос
/ 03 января 2011

Я использую 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?

1 Ответ

1 голос
/ 03 января 2011

Вы можете отправить этот параметр в качестве параметра get через электронное письмо активации, которое решит все три проблемы, не так ли?

...