Laravel 4 - auth.basic过滤器会话不会过期|如何使auth.basic会话失效

时间:2013-09-30 13:44:56

标签: session authentication laravel laravel-4

我有一个简单的管理区域,我可以更新网站的某些方面。因为我将是唯一访问它的人,所以我想到了使用Laravel 4的auth.basic功能。

我在routes.php文件上构建了一个组,该文件一次将auth.basic过滤器添加到多个资源中:

//routes.php

// Password protected routes
Route::group(['before' => 'auth.basic'], function () {
    Route::get('admin', ['as' => 'admin', 'uses' => 'AdminController@index']);
    Route::resource('admin', 'AdminController');
    Route::resource('users', 'UsersController');
    Route::resource('pizzas', 'PizzasController');

});

路由受到保护(应该如此),当我第一次访问这些路由时,我必须填写一个弹出的身份验证表单。

以下是问题:我认为,一旦关闭浏览器,经过身份验证的会话就会过期。这不会发生。即使浏览器关闭数小时,它仍然“记得我”。

  • 我尝试在'lifetime' => 0,上设置config/session.php

我该怎么做才能解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:0)

要同时清除auth.basic会话,您可以使用

Auth::logout();

或者

Auth::clearUserDataFromStorage();

请参阅API文档here

答案 1 :(得分:0)

转到config/session.php并设置'lifetime' => 0,然后重新启动Windows,将其修复为适用于Firefox和IE9,但不适用于开发计算机上的Chrome。

但是,当从其他计算机(而不是为该页面提供服务的计算机)访问该页面时,Chrome确实按预期工作。

考虑到没有人会从服务器访问该网站(一旦它上线),我就会忍受它。

答案 2 :(得分:0)

我认为chrome保存身份验证信息并发送任何请求。所以它可以与会话分开。

你可以使用chrome dev工具检查它 - >网络标签。在任何请求中,chrome会自动发送身份验证信息。

你可以检查

  

auth.basic.once