Active Admin未授权用户访问后台不自动跳转登录页问题
解决方案
这个问题是ActiveAdmin默认的未授权访问处理逻辑导致的,默认配置下未登录访问受保护的后台路径时,只会返回401状态码和提示文本,不会触发HTML页面跳转。你可以按照以下步骤修复:
- 第一步:修改ActiveAdmin初始化配置
打开config/initializers/active_admin.rb文件,找到on_unauthorized_access配置项,修改为:# 原有配置保留,只修改这一行,如果被注释了就取消注释修改值 config.on_unauthorized_access = :redirect_to_admin_login - 第二步:添加重定向处理方法
在app/controllers/application_controller.rb中添加对应的处理方法:class ApplicationController < ActionController::Base # 原有其他配置保留,新增以下方法 def redirect_to_admin_login(exception) if request.format.html? && current_admin_user.blank? redirect_to new_admin_user_session_path, alert: exception.message else head :unauthorized end end end - 第三步:重启Rails服务
配置修改完成后重启Rails服务,再次未登录访问/admin路径就会自动跳转到登录页了。
注意:你当前的routes.rb配置顺序是正确的,
devise_for放在ActiveAdmin.routes前面不需要调整。
内容的提问来源于stack exchange,提问作者marshy101
相关产品推荐
相关产品推荐

