我们在应用程序中使用Devise,Rails_Admin和Simple_Token_Authentication(用于API)。
除了退出外,一切正常。当我们点击退出时,会发出以下请求并且用户已退出。
在2015-07-12 18:50:44为127.0.0.1开始删除“/ admins / sign_out” +0530由Devise处理:: SessionsController#destroy作为HTML参数: { “authenticity_token”=> “中rtSRPzpRN7cWEk8wV8q6VDAUB575ZV46JeFFlMFVOQc =”} Admin Load(0.4ms)SELECT“admins”。* FROM“admins”WHERE “admins”。“id”= 1 ORDER BY“admins”。“id”ASC LIMIT 1(0.1ms) begin transaction(0.1ms)commit transaction已完成204否 内容700毫秒(ActiveRecord:0.5毫秒)
问题是退出后页面没有重定向。
再次按下退出按钮,这是请求:
在2015-07-12 19:01:59为127.0.0.1开始删除“/ admins / sign_out” +0530由Devise处理:: SessionsController#destroy作为HTML参数: { “authenticity_token”=> “中dHuxA5hRosyquhlsRmchK3vW9bQOCM / YXYXUNMxTufc =”} 过滤器链暂停为:verify_signed_out_user呈现或重定向 完成204无内容1ms(ActiveRecord:0.0ms)
这是应用程序控制器(app / controllers / application_controller.rb):
class ApplicationController < ActionController::Base
protect_from_forgery
skip_before_filter :verify_signed_out_user
respond_to :html, :json
protected
# Overwriting the sign_out redirect path method
def after_sign_out_path_for(resource_or_scope)
request.referrer
end
end
以下是app / config / initializers / rails_admin.rb
中与设计相关的代码config.authenticate_with do
warden.authenticate! scope: :admin
end
config.current_user_method(&:current_admin)
请建议。提前谢谢!
答案 0 :(得分:1)
问题出在您的after_sign_out_path_for(resource_or_scope)
。
request.referrer
重定向到 当前页面 。
相应地更改after_sign_out_path_for(resource_or_scope)
。如果您想 重定向 到root_path
,那么下面就可以了。
def after_sign_out_path_for(resource_or_scope)
root_path
end