[英]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.rb
將session.delete(:user_id)
添加到destroy
方法中
def destroy
#...
session.delete(:user_id)
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.