我正在尝试实施电子商务应用。在其中,我允许用户浏览产品并在登录前将它们放入购物车。我只提示用户在结账时登录。
但是,由于用户的会话ID在登录时发生了变化,我失去了对用户的跟踪。由于这个原因,我无法将用户放入购物车的商品关联起来(存储在redis中) )在用户登录应用程序后将其放入的用户。
有没有人知道如何规避这个?
感谢。
干杯!
答案 0 :(得分:3)
找到解决方案。所有需要完成的工作都是设置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