2011-06-10 69 views
4

我需要为用户获取会话ID,并最好在模型中使用它。从监狱长或设计人员处获得会话ID

这是要点:

1)我有一个提案清单。 2)未注册用户可以创建提案,并将他们的会话ID保存到他们。 3)当用户注册或登录他们的会话时,ID应与提案匹配。 4)然后,他们的用户ID也应保存到提案中。

我想过重写Devise控制器或在Rails应用程序文件中使用Warden挂钩,但这些解决方案似乎很混乱。

+0

。只需获取'session.id'并在记录中使用它。当用户登录时,如果他们有未保存到其中的记录,则可以显示一条Flash消息。然后通过重新链接逻辑链接到控制器操作。 – 2011-06-10 14:58:07

+0

哪里可用?在设置会话时应该可以使用 – atomical 2011-06-10 15:13:03

+1

。只要在视图或其他地方调用'<%= session.id%>'即可。 – 2011-06-10 15:19:00

回答

4

您可以使用控制器或意见如下:没有必要在这里在此改变色器件或监狱长

session['session_id'] 
=> '69384476b67fa4c2d1e3cc340eb4e951' 
+2

在一些有限的测试中,它看起来像session ['session_id']在成功登录后重置 - 因此ID是不同的。 – rvandervort 2011-12-07 12:37:22

+1

重置它以防止[会话修复攻击](http://en.wikipedia.org/wiki/Session_fixation) – numbers1311407 2012-01-03 20:53:53