首页 文章

auth logout不起作用

提问于
浏览
0

我使用该命令制作了用于身份验证的文件

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 / logout)

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中定义的默认注销时,我得到的是同样的错误

1 回答

  • 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路径时,它应该可以工作 .

相关问题