我已经在Laravel 4.2中设置了一个基本的身份验证例程,我发现一旦我登录查看受保护的页面(/ spotlight),我似乎无法注销 - 我总是可以访问该页面。如果我访问登录页面,然后转到站点根目录检查状态,则表示我已经注销了,这更奇怪(也许是线索)。但是,如果我转到/ spotlight,则会显示该页面,并且随后将返回网站根目录并返回登录。'
是的,我确实建立了remember_token列(varchar(100),NULL yes,Default = NULL)。
相关路线:
Route::get('/login', function()
{
return View::make('login');
});
Route::post('/login', function()
{
$credentials = Input::only('username', 'password');
if (Auth::attempt($credentials)) {
return Redirect::intended('/');
}
return Redirect::to('login');
});
Route::get('/logout', function()
{
Auth::logout();
return View::make('logout');
});
Route::get('spotlight', array(
'before' => 'auth.basic' ,
function()
{
return View::make('spotlight');
}
));
我在想什么?
谢谢 - 乔
答案 0 :(得分:2)
基本身份验证不支持注销。这不是Laravel的限制,HTTP基本授权不是为处理注销而设计的。客户端将保持登录状态,直到浏览器关闭。
答案 1 :(得分:1)
看起来问题在于使用auth.basic而不仅仅是使用auth作为过滤器。当我切换到auth和自定义登录页面时,一切正常。
希望这有助于其他人。
最好 - 乔