我想删除路由登录而不干扰我的登录,Laravel 7

Posted

技术标签:

【中文标题】我想删除路由登录而不干扰我的登录,Laravel 7【英文标题】:I want to remove the route login without interfering with my login, Laravel 7 【发布时间】:2020-09-15 05:51:20 【问题描述】:

我使用 auth 控制器在 /admin 中登录,但我想删除转到 /login 的路由,但如果我尝试它,这会给我这个错误:

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 此路由不支持 POST 方法。支持的方法:GET、HEAD。 http://casarelvas.test/admin

我的 web.php 看起来像这样:

Route::get('/admin', function () 
    return view('login');
)->name('login');

但是如果我让他们进入我的管理员(登录)工作时我去 /login 会给我这个错误,因为我删除了刀片文件,因为我不想要它:

Facade\Ignition\Exceptions\ViewException 查看 [layouts.app] 未找到。 (查看:C:\laragon\www\casarelvas\resources\views\auth\login.blade.php) http://casarelvas.test/login

(当我退出时也会发生)

我的 web.php 看起来像这样:

Route::get('/admin', function () 
    return view('login');
)->name('login');
Auth::routes();
Auth::routes(['register' => false]);

也许解决方案是隐藏路由并让/登录给出 404 错误

【问题讨论】:

【参考方案1】:

Laravel 没有提供直接的方法来覆盖登录路由名称。您可以在此处执行以下操作:

Auth::routes();
Route::get('login', function () 
    abort(404);
);
Route::get('admin', 'Auth\LoginController@showLoginForm')
    ->name('login');

【讨论】:

但现在给了我这个错误,因为我认为 LoginController@showLoginForm 返回了错误的视图。 >Facade\Ignition\Exceptions\ViewException 未找到视图 [layouts.app]。 (查看:C:\laragon\www\casarelvas\resources\views\auth\login.blade.php)casarelvas.test/admin 如果你不想使用 laravel 的 loginController,你可以使用自定义路由回调,在这种情况下是: Route::get('admin', function () return view('login' ); )->name('登录'); 您在解决方案中所做的(下一个答案)也是正确的。这在控制器中处理它,而上述解决方案在路由注册时抛出 404。此外,您可以将新路由(“admin”)命名为“login”【参考方案2】:

在 vendor/ui/auth-backend/AuthenticatesUsers.php 你可以改变这个:

    public function showLoginForm()
    
        return view('auth.login');
    

所以我通过改成这个来解决我的问题:

    public function showLoginForm()
    
        abort(404);
    

并像这样使用 web.php:

Route::get('/admin', function () 
    return view('login');
)->name('admin-login');
Auth::routes();
Auth::routes(['register' => false]);

我必须更改名称以免干扰在某处注册的名为 login 的路由。

【讨论】:

如果您有更好的解决方案请回答

以上是关于我想删除路由登录而不干扰我的登录,Laravel 7的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 路由错误:路由 [登录] 未定义

Laravel 5.3 登录路由 - RouteCollection.php 中的 NotFoundHttpException

如何更改登录路由名称

laravel - 登录重定向丢失 url 哈希

Local.ERROR:未定义路由 [登录]。 Laravel 问题

登录后Laravel闪烁消息不显示在主路由中