我正在使用Auth0进行身份验证,并且登录正常工作,但是一旦我再次登录重定向用户后调用注销功能。这是我的路线档案:
<?php
Route::get('/auth0/callback', '\Auth0\Login\Auth0Controller@callback');
Route::group(['middleware' => ['auth']], function () {
Route::get('/', 'SiteController@index');
Route::get('/dashboard', 'DashboardController@index')->middleware('role');
Route::get('/employees-status', 'ReviewStatusPhasesController@employeesStatus')->middleware('role');
Route::get('/user-status/{id}', 'UserPhaseController@get')->middleware('role');
Route::get('/request-update/{id}', 'UserController@requestUpdate');
Route::post('/search', 'UserController@search')->middleware('role');
Route::post('/change-status', 'UserPhaseController@changeStatus')->middleware('role');
Route::get('/logout', function() {
var_dump(Auth::check());
Auth::logout();
var_dump(Auth::check());
die;
return redirect('login');
});
});
Route::get('/login', function () {
return \App::make('auth0')->login();
})->name('login');
似乎 Auth :: logout(); 正常工作,因为第一个 var_dump 显示 true ,第二个显示 false (其余设置与文档https://auth0.com/docs/quickstart/webapp/laravel/01-login中的相同)。
如果我在注销后尝试加载页面,我会再次登录。有什么想法可能会出错吗?
答案 0 :(得分:0)
尝试将路线更改为:
Route::get('auth/logout', 'Auth\AuthController@logout');
或尝试在AuthController构造函数中添加
public function __construct()
{
$this->middleware('guest', ['except' => ['logout', 'getLogout']]);
}
取自:https://stackoverflow.com/a/34667356/1275778(如果您之后仍有问题,请查看其他答案)