用户通过后台线程的Devise身份验证中的会话ID

时间:2014-08-27 05:56:55

标签: ruby-on-rails devise session-cookies

使用Devise Authentication gem时,如何通过会话ID(来自cookie)获取用户或用户ID?我需要从后台线程访问此信息,其中session变量无法访问。

冗长的解释:

我在Web服务器上打开了两个端口:一个用于正常的HTTP通信,另一个用于Web套接字,用于即时服务器到浏览器的通信。目前我用

初始化socket
var UserID = <%= current_user.id %>

但请考虑这种不安全的方式。每个经过身份验证的用户都可以替换用户ID并接收打算给其他用户的消息。

所以我认为存储在cookie中的SessionID更难以猜测,它可以通过JavaScript以某种方式提取并在初始化期间通过Web Socket传递。

任务是将SessionID转换为服务器端的UserID。

通过一些Devise方法,sessionID存储是否可以作为一个整体访问?

1 个答案:

答案 0 :(得分:1)

设计会话存储为warden用户密钥。您可以通过设计会话密钥找到用户ID。 尝试   User.find(会话[ “warden.user.user.key”] [1] [0]) 有关详细信息,请参阅this链接。