簡體   English   中英

Redis和Devise的Rails無法正常工作

[英]Rails with Redis and Devise not working

我已將redis-rb添加到我的rails 5應用程序中,以便處理由sidekiq管理的后端進程。

我的應用程序中的用戶身份驗證由Devise管理。

在使我所有的工作人員等正常運行之后,看來我的會話存儲現在已損壞。 問題是,當我注銷時,用戶會話不再被破壞,因此無法注銷。

這是我的session_store.rb配置:

if Rails.env.production?
  Rails.application.config.session_store :cookie_store, key: '_myapp_session', domain: ENV['SESSION_STORE_DOMAIN'], tld_length: ENV['TLD_LENGTH'].to_i
else
  Rails.application.config.session_store :cookie_store, key: '_myapp_session', domain: :all, tld_length: 2
end

遇到此錯誤后,我還嘗試使用redis-session-store gem進行實驗,但這會導致InvalidAuthenticityToken錯誤。

我真的不想更改會話存儲以使用Redis。 有什么辦法可以解決這個問題,還是我錯過了什么?

更新1

sessions_controller.rb(設計)

def destroy
    signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
    set_flash_message! :notice, :signed_out if signed_out
    yield if block_given?
    respond_to_on_destroy
end

在您的sessions_controller.rbsession.delete(:user_id)添加到destroy方法中

def destroy
  #...
  session.delete(:user_id)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM