我已经建立了一个新的CI 4项目,建立了CI 4的Shield授权库,并且从一个全新的安装开始。我已经设置了自动路由,并且创建了新的控制器(Dashboard.php,Profile.php,Login.php)。我还设置了过滤器来锁定验证后的 Jmeter 板和配置文件,所以它应该重定向到登录页面。
我的问题是自动路由知道有一个“登录”路由,但当我尝试在未登录的情况下访问控制面板时,CI 4告诉我**“找不到“登录”的路由。"**
Spark列出的路线如下:
+------------+-----------------+------------------------------------------+--------------------+---------------+
| Method | Route | Handler | Before Filters | After Filters |
+------------+-----------------+------------------------------------------+--------------------+---------------+
| GET | / | \App\Controllers\Home::getIndex | session | toolbar |
| CLI | ci(.*) | \CodeIgniter\CLI\CommandRunner::index/$1 | | |
| GET(auto) | dashboard | \App\Controllers\Dashboard::getIndex | session | toolbar |
| GET(auto) | login | \App\Controllers\Login::getIndex | auth-rates | toolbar |
| POST(auto) | login | \App\Controllers\Login::postIndex | auth-rates | toolbar |
| GET(auto) | profile | \App\Controllers\Profile::getIndex | session auth-rates | toolbar |
| GET(auto) | results | \App\Controllers\Results::getIndex | session | toolbar |
| GET(auto) | users | \App\Controllers\Users::getIndex | session | toolbar |
| GET(auto) | users/edit[/..] | \App\Controllers\Users::getEdit | session auth-rates | toolbar |
| GET(auto) | users/add | \App\Controllers\Users::getAdd | session auth-rates | toolbar |
| GET(auto) | work | \App\Controllers\Work::getIndex | session | toolbar |
Shield尝试重定向到/codeigniter4/shield/src/Filters/SessionAuth.php : 60
中的“登录”路径:
return redirect()->route('login');
但它似乎无法识别自动路由。我已经验证了实际的自动路由**/login**是否工作并显示视图的内容。
我做错了什么?是否可能自动路线无法重定向到?
我希望考虑到盾牌是CI 4的内置授权系统,它将能够重定向到登录自动路由...
1条答案
按热度按时间x8diyxa71#
如果你的意思是你不能进入默认的login(Shield)页面,你可以编辑文件
app/Config/Routes.php
:如果您的问题没有得到解决,您可以继续提供更多的细节,并在Github discussions中提供最少的代码。