簡體   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