当我尝试从管理面板注销时出现错误:
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() 函数,导入 Auth 和 Redirect 类
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/