繁体   English   中英

登录前后保留Rails 4设计会话ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM