使用Devise Authentication gem时,如何通过会话ID(来自cookie)获取用户或用户ID?我需要从后台线程访问此信息,其中session
变量无法访问。
冗长的解释:
我在Web服务器上打开了两个端口:一个用于正常的HTTP通信,另一个用于Web套接字,用于即时服务器到浏览器的通信。目前我用
初始化socketvar UserID = <%= current_user.id %>
但请考虑这种不安全的方式。每个经过身份验证的用户都可以替换用户ID并接收打算给其他用户的消息。
所以我认为存储在cookie中的SessionID更难以猜测,它可以通过JavaScript以某种方式提取并在初始化期间通过Web Socket传递。
任务是将SessionID转换为服务器端的UserID。
通过一些Devise方法,sessionID存储是否可以作为一个整体访问?
答案 0 :(得分:1)
设计会话存储为warden用户密钥。您可以通过设计会话密钥找到用户ID。 尝试 User.find(会话[ “warden.user.user.key”] [1] [0]) 有关详细信息,请参阅this链接。