1

Я использую AuthLogic для активации/аутентификации новых пользователей, и в настоящее время я использую данные сеанса, чтобы система узнала, куда отправить нового пользователя после их активации (например, какой проект показывать их). Таким образом, он использует ряд переменных, таких как session [: project_id], которые должны быть там, когда пользователь активирует свою учетную запись в первый раз.Как сохранить данные сеанса с помощью регистрации пользователя

Проблема в том, что произойдет, если данные сеанса отсутствуют, когда пользователь активирует? Несколько случаев:

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

Из того, что я могу сказать, используя данные сеанса представляет уязвимость UX, потому что, когда она не сохраняется, пользователь заканчивает в бесполезном месте (или даже хуже, 500-ошибку, связанные с ожидая переменный сеанс, что делает не существует).

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


В ответ на ответ Омара:

В UserMailer.rb У меня есть определенные activation_instructions (пользователей), которые посылают на activation_instructions электронной почты для новых пользователей. В настоящий момент я вижу следующее:

def activation_instructions(user) 
    @user = user 
    @account_activation_url = activate_url(user.perishable_token) 
    mail(:to => "#{user.login} <#{user.email}>", :subject => "Welcome!") 
end 

Как добавить параметры для этого параметра? Скажем, у меня есть параметры project_id и category_id?

ответ

1

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

+0

Я добавил несколько подробностей выше. – sscirrus

+0

Как бы то ни было, всякий раз, когда вы вызываете UserMailer.deliver_activation_instructions, вы также должны передавать параметр project_id и изменять вид электронной почты, чтобы принять это во внимание. –