在Laravel 5.8中覆盖默认的Auth路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Laravel 5.8中覆盖默认的Auth路由相关的知识,希望对你有一定的参考价值。

我在web.php中使用默认的auth路由。

此路由复制了`Illuminate / Routing / Router.php'。

我用它来改变默认路线和...在web.php

Route::group([], function (){

    // Authentication Routes...
    $this->get('login', 'AuthLoginController@showLoginForm')->name('login');
    $this->post('login', 'AuthLoginController@login');
    $this->post('logout', 'AuthLoginController@logout')->name('logout');

    // Registration Routes...
    if ($options['register'] ?? true) {
        $this->get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
        $this->post('register', 'AuthRegisterController@register');
    }

    // Password Reset Routes...
    if ($options['reset'] ?? true) {
        $this->resetPassword();
    }

    // Email Verification Routes...
    if ($options['verify'] ?? false) {
        $this->emailVerification();
    }
});

什么是$options[]

我应该在路线组中的哪个位置定义它?

感谢帮助 。

答案

Illuminate/Routing/Router.php中的这个方法并不像你那样被复制。通常,它应该与Auth Facade一起使用,如下所示:Auth::routes($options);。这称为route()方法,应该在路径文件中完成,如果你没有改变任何东西,通常是web.php

这样,确实考虑了选项。现在,在你的情况下,他们不需要一个可选的$options数组,因为你很难复制路由。

要避免路由文件中的任何错误,您有两种选择:

1)使用Auth::routes()(如果需要,使用options数组)。您当然可以覆盖要更改的路线。

2)深入了解emailVerificationresetPassword方法以复制/粘贴它们引用的路线,并删除路线文件中对$this$options的任何引用

另一答案

$options数组用于配置注册,如here所述。因此,它用于指定您是要启用还是禁用用户注册,密码重置和电子邮件验证。

另一答案

我绝对看到没有任何理由覆盖默认组。根据控制器的说法,只需从web.php中删除Auth::routes(),然后实现自己的路由。

以上是关于在Laravel 5.8中覆盖默认的Auth路由的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.8 中会话过期时重定向到其他路由

此路由不支持 GET 方法。支持的方法:POST。 laravel 5.8 阿贾克斯

Laravel 5.8:如何在 Global Scope 的 apply 方法中解析 auth()->user()?

在 Laravel 5.8 中以用户身份管理员登录

如何更改默认的Laravel Auth登录视图

将 Auth 中间件应用于所有 Laravel 路由