Auth::routes(['register' => false]);不能在 laravel 8 中工作

Posted

技术标签:

【中文标题】Auth::routes([\'register\' => false]);不能在 laravel 8 中工作【英文标题】:Auth::routes(['register' => false]); not working in laravel 8Auth::routes(['register' => false]);不能在 laravel 8 中工作 【发布时间】:2021-01-03 05:06:15 【问题描述】:

最近我安装了 laravel 8。我试图禁用注册。 在 laravel 7 “Auth::routes(['register' => false]);”是工作。 但是 laravel 8 它不起作用。

【问题讨论】:

默认情况下,Laravel 没有这些东西,它是一个单独的包,它是 laravel/ui ...所以它不会在默认安装中出现,在 7 中你也有安装那个包......在 laravel 8 中,他们希望你使用 jetstream,但无论如何它都不像 laravel/ui 【参考方案1】:

要在 Laravel 8 中禁用注册,请删除 Features::registration() 行或注释掉 app/config/fortify.php 文件中的 Feature

'features' => [
    // Features::registration(),
    Features::resetPasswords(),
    // Features::emailVerification(),
    Features::updateProfileInformation(),
    Features::updatePasswords(),
     Features::twoFactorAuthentication([
         'confirmPassword' => true,
     ]),
],

【讨论】:

config 文件夹中不存在此文件,我已安装 laravel 8.x 我认为我们需要安装这个才能使这个答案起作用:laravel.com/docs/8.x/fortify【参考方案2】:

你可以试试这个对我有用。 在Auth::routes() 下方添加这些路由以覆盖默认注册路由。对/register 路由的任何请求都会重定向到baseUrl。

Route::match(['get', 'post'], 'register', function()
return redirect('/');
);

【讨论】:

【参考方案3】:

对于 Laravel 微风。 只需在 routes/auth.php 中删除或注释此行

Route::get('/register', [RegisteredUserController::class, 'create'])
            ->middleware('guest')
            ->name('register');

Route::post('/register', [RegisteredUserController::class, 'store'])
                ->middleware('guest');

【讨论】:

【参考方案4】:

将此添加到您的路线中

Route::match(['get', 'post'], 'register', function () 
    abort(404);
);

【讨论】:

以上是关于Auth::routes(['register' => false]);不能在 laravel 8 中工作的主要内容,如果未能解决你的问题,请参考以下文章

laravel auth routes 问题:登录和注册链接不起作用

Auth::user() 在新路由中为空

Laravel REST API - 无限循环

路由 [password.request] 未定义。但是Auth在路由[laravel]

Laravel 查看默认的用户认证

如何结合 laravel 和 vue 路由