[英]Preserving Rails 4 Devise Session Id Before & After Sign In
我正在尝试实施一个电子商务应用程序。 在其中,我允许用户浏览产品并在登录前将它们放入购物车。我只提示用户在结账时登录。
但是,我正在失去对用户的跟踪,因为用户的会话ID在登录时会发生变化。由于这个原因,我无法将用户放入购物车的项目(存储在redis中)与放入其中的用户相关联。用户登录该应用程序。
有谁知道如何规避这个?
谢谢。
干杯!
找到了解决方案。 所有需要完成的工作都是设置session.options [:renew] = false,并且会话ID在登录前后仍然相同。
请参考下面的实现
class SessionsController < Devise::SessionsController
respond_to :json
def create
super
session.options[:renew] = false
end
def destroy
logger.info "Logging out: #{current_user.email}; Session Id: #{session.id}"
$redis.del "cart_#{session.id}"
super
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.