Codeigniter 4自动路由不能重定向到?

agyaoht7  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(180)

我已经建立了一个新的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的内置授权系统,它将能够重定向到登录自动路由...

x8diyxa7

x8diyxa71#

如果你的意思是你不能进入默认的login(Shield)页面,你可以编辑文件app/Config/Routes.php

// service('auth')->routes($routes);
service('auth')->routes($routes, ['except' => ['login']]);

如果您的问题没有得到解决,您可以继续提供更多的细节,并在Github discussions中提供最少的代码。

相关问题