我在Laravel 5.2应用程序中使用身份验证。一切都好,但退出不起作用。任何人都可以向我解释,为什么会发生这种情况?
routes.php文件
Route::group([
'middleware' => ['web']
], function () {
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
...
});
Controller.php这样
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
public function __construct()
{
$this->middleware('guest', ['except' => 'logout', 'getLogout']);
}
public function logout()
{
/* This place not trigger */
echo 'Logout';
exit;
Auth::guard($this->getGuard())->logout();
return redirect(property_exists($this, 'redirectAfterLogout') ? $this->redirectAfterLogout : '/');
}
...
}
答案 0 :(得分:3)
希望这是工作
您在控制器的方法名称中出错。
<强> 1)强>
public function logout()
替换为此方法
public function getLogout()
说明----------------------------------------
在路线中你使用了以下路线
Auth\AuthController@getLogout
您使用了以下方法
public function logout()
方法名称只是注销,路由有getLogout,因此在Auth控制器中找不到此方法,因此注销无法正常工作。
<强> 2)强> 另一种方法是仅使用它。
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
并删除Logout方法。
Thnaks