laravel - 为什么在 Laravel 中注销路由不起作用?

标签 laravel laravel-5.2 laravel-5.3

当我尝试从管理面板注销时出现错误:

MethodNotAllowedHttpException in RouteCollection.php line 218:

但是在路由中有路由​​logout:

POST | logout |  App\Http\Controllers\Auth\LoginController@logout | web  

我该如何解决这个问题?

最佳答案

您需要执行以下步骤:

1.- 如果您正在使用您创建的登录类,请在 config/auth.php 中指定它:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Administrator::class,
    ],
],

2.- 你的模型必须继承自 Authenticatable 类:

use Illuminate\Foundation\Auth\User as Authenticatable;
class Administrator extends Authenticatable{
    #code...
}

3.- 在您的 LoginController 上添加 logout() 函数,导入 AuthRedirect

public function logout(){
    Auth::logout();
    return Redirect::to('admin');
}

3.- 指定您将用于通过 GET 注销的路由

Route::get('logout','LoginController@logout');

就是这样,这应该可以。

注意:检查您是否通过函数 Auth::check()

进行身份验证

附加信息:当您处理 POST 请求时,Laravel 需要验证该请求不是恶意请求,为此 Laravel 需要一个加密代码,这称为 csrf_token,如果你不发送这个,默认情况下你的所有请求都将被禁止。

关于laravel - 为什么在 Laravel 中注销路由不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39342903/

相关文章:

php - Laravel 5 - 如何检查用户名和密码是否与表匹配?

mysql - Laravel - 违反完整性约束 : 1062 Duplicate entry

laravel - Passport Laravel Rest API Auth 与正常设计

rest - 在 Laravel 5.3 中找不到带有 PUT 请求的正文数据

php - laravel 5.3 新的 Auth::routes()

php - composer 需要 spatie/laravel-backup

php - 如何在 Laravel 中验证电话号码?

php - 如何在 Laravel 中使用 PDO 进行 block 更新

laravel-5.2 - Laravel 中的错误异常 'InvalidArgumentException'

wordpress - 如何允许 Laravel 和 WordPress 共享登录信息?