如何在 Laravel 5.5/5.6 中禁用登录 url 路径
How to disable login url path in Laravel 5.5/5.6
我知道如何在 web.php
中添加自定义登录路由,例如:
Route::get('login-whatever', [
'as' => 'login-whatever',
'uses' => 'Auth\LoginController@showLoginForm'
]);
并添加到 app/Exceptions/Handler.php
use Illuminate\Auth\AuthenticationException;
protected function unauthenticated($request, AuthenticationException $exception)
{
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('login-whatever'));
}
但仍然允许通过 /login
路由登录
你为什么不捕获 /login 路由并进行永久重定向?
Route::match(['get', 'post'], 'login', function(){
return redirect('/');
});
或者您可以明确说明控制器和您希望它执行的功能。
Route::get('login', 'YourController@doYourFuntion')->name('name');
如果这不起作用,请向我们提供您的完整路线代码,以便我们帮助解决问题。还要使用您尝试过的内容编辑问题,这样我们就不会花时间重复已经尝试过的方法。谢谢!
Laravel中的中间件class是负责认证的classes,
Illuminate\Auth\Middleware\Authenticate
是默认身份验证 class。您应该能够轻松覆盖它。
阅读 Laravel 的文档了解更多信息 https://laravel.com/docs/5.6/authentication
嗯,我不是 100% 确定你的意思,但 Auth::routes()
只是 /vendor/laravel/framework/src/Illuminate/Routing/Router.php
中 auth()
函数的快捷方式。如果您不想看到它们,可以将它们注释掉。不过,这可能不是最好的方法。您可以只覆盖 web.php
中的那些路线
有关详细信息,请参阅此 link:Overriding default auth routes
我知道如何在 web.php
中添加自定义登录路由,例如:
Route::get('login-whatever', [
'as' => 'login-whatever',
'uses' => 'Auth\LoginController@showLoginForm'
]);
并添加到 app/Exceptions/Handler.php
use Illuminate\Auth\AuthenticationException;
protected function unauthenticated($request, AuthenticationException $exception)
{
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('login-whatever'));
}
但仍然允许通过 /login
路由登录
你为什么不捕获 /login 路由并进行永久重定向?
Route::match(['get', 'post'], 'login', function(){
return redirect('/');
});
或者您可以明确说明控制器和您希望它执行的功能。
Route::get('login', 'YourController@doYourFuntion')->name('name');
如果这不起作用,请向我们提供您的完整路线代码,以便我们帮助解决问题。还要使用您尝试过的内容编辑问题,这样我们就不会花时间重复已经尝试过的方法。谢谢!
Laravel中的中间件class是负责认证的classes,
Illuminate\Auth\Middleware\Authenticate
是默认身份验证 class。您应该能够轻松覆盖它。
阅读 Laravel 的文档了解更多信息 https://laravel.com/docs/5.6/authentication
嗯,我不是 100% 确定你的意思,但 Auth::routes()
只是 /vendor/laravel/framework/src/Illuminate/Routing/Router.php
中 auth()
函数的快捷方式。如果您不想看到它们,可以将它们注释掉。不过,这可能不是最好的方法。您可以只覆盖 web.php
有关详细信息,请参阅此 link:Overriding default auth routes