身份验证注销不起作用 laravel
auth logout doesn't work laravel
我使用命令
制作了用于身份验证的文件
php artisan make:auth
我在网上看到说注册、登录、注销应该都可以,但是localhost:8080/logout 就不行,不知道为什么。
我还阅读了一些关于在应用程序中修改 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/注销时)
Use of undefined constant pages - assumed 'pages'
我该怎么办?
编辑
我尝试了另一种方法(但没有更好的结果):
- 将重定向到“/”的路由重命名为'home'
在 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
中定义的默认注销时遇到的错误相同
您正在尝试使用 GET 访问注销页面。但这不起作用,因为您的注销路由是 post 路由。
更改
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 路由时(进入页面时的默认设置)它应该可以工作。
我使用命令
制作了用于身份验证的文件php artisan make:auth
我在网上看到说注册、登录、注销应该都可以,但是localhost:8080/logout 就不行,不知道为什么。
我还阅读了一些关于在应用程序中修改 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/注销时)
Use of undefined constant pages - assumed 'pages'
我该怎么办?
编辑
我尝试了另一种方法(但没有更好的结果):
- 将重定向到“/”的路由重命名为'home'
在 app/http/Controllers/Auth
中创建了一个 LogoutControllernamespace 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
中定义的默认注销时遇到的错误相同您正在尝试使用 GET 访问注销页面。但这不起作用,因为您的注销路由是 post 路由。 更改
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 路由时(进入页面时的默认设置)它应该可以工作。