我使用命令
制作了用于身份验证的文件php artisan make:auth
我在互联网上看到注册,登录以及注销都应该正常工作,但localhost:8080 / logout不起作用,我不知道为什么。
我还阅读了有关在app中修改AuthController的内容,但我没有该文件。
我尝试手动完成,这意味着我创建了一个中间件LogoutRedirect:
public function handle($request, Closure $next)
{
return redirect(pages.logout);
}
在我添加的路线中
use App\Http\Middleware\LogoutRedirect;
Route::get('logout', function()
{
return view('pages.logout');
})->middleware(LogoutRedirect::class);
logout.blade.php看起来像
{{ Auth::logout() }}
我收到错误(尝试访问localhost:8080 / logout时)
Use of undefined constant pages - assumed 'pages'
我该怎么办?
我尝试了另一种方法(但没有更好的结果):
在app / http / Controllers / Auth
中创建了一个LogoutController
namespace App\Http\Controllers;
use [...]
class LogoutController extends Controller
{
public function logout() {
Auth::logout();
return Redirect::route('home');
}
}
制作路线
Route::post('logout', array(
'as' => 'account-sign-out',
'uses' => 'Auth\LogoutController@logout'
));
我得到的错误是
MethodNotAllowedHttpException in RouteCollection.php line 233:
当我尝试使用auth
中定义的默认注销时,我得到了同样的错误答案 0 :(得分:1)
您正尝试使用GET访问注销页面。但这不起作用,因为您的注销路线是一个后期路线。 改变
Route::post('logout', array(
'as' => 'account-sign-out',
'uses' => 'Auth\LogoutController@logout'
));
通过
Route::get('logout', [
'as' => 'account-sign-out',
'uses' => 'Auth\LogoutController@logout'
]);
当您使用方法GET(转到页面时的默认设置)转到/ logout路径时,它应该可以正常工作。