我使用AuthLogic来激活/验证新用户,我当前正在使用会话数据,因此系统知道在激活后将新用户发送到哪里(例如显示它们的项目)。因此,它使用了许多变量,例如session [:project_id],当用户第一次激活他们的帐户时,需要存在这些变量。
问题是这样 - 如果用户激活时会话数据不存在会发生什么?一些案例:
据我所知,使用会话数据会出现UX漏洞,因为当它不存在时,用户最终会处于无用的位置(或者更糟糕的是,由于期望会话变量不存在而导致500错误)
在我看来,必须将诸如project_id(以及一些其他变量)之类的信息从注册到激活可靠地存储。我担心为这个有限和临时目的创建新的数据库字段,但我对所有建议持开放态度。我该怎样关闭这个漏洞?
回应奥马尔的回答:
在UserMailer.rb中,我定义了activation_instructions(user),它将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
如何将get参数添加到此?假设我有参数project_id和category_id?
答案 0 :(得分:1)
您可以通过激活电子邮件将该参数作为get参数发送,这将解决所有三个问题,不是吗?