Laravel Auth::onceBasic()记住身份验证


Laravel Auth::onceBasic() remembering authentication

我正在尝试做类似的事情在这里,但不是一个API:完全禁用cookie在Laravel 4 API

基本上,我有一个登录部分,用户可以下载特定的文件和做其他事情。在下载之前,我希望他们必须输入用户名&再次设置密码作为额外的安全措施(就像一些银行为你下载账单所做的那样)。我的标准函数运行正常。我已经设法实现Auth::onceBasic()好吧,但它记住我登录,不会问我不止一次(甚至在关闭浏览器!)。

那是当我发现上面关于设置session.driverarray的链接,但它似乎不起作用。我已经关闭了我的主要登录,以便Auth::onceBasic()是唯一的身份验证,并且当我多次访问该页面时,它仍然记得我。

下面是我的代码:

routes.php:

Route::get('downloads/{file}', 'DownloadsController@show')->before('auth.basic');

filters.php:

Route::filter('auth.basic', function()
{
    Config::set('session.driver', 'array');
    return Auth::onceBasic();
});

…DownloadsController:

public function show($id)
{
    dd(Session::all());
}

我的输出显示会话作为一个数组和空,但它仍然表现得像它的身份验证,所以我不确定我在哪里出错。我在chrome和firefox上测试了同样的结果。

Laravels Auth::onceBasic()使用HTTP基本身份验证,这不是为了处理您的用例而设计的。通过基本身份验证,用户将保持登录状态,直到浏览器关闭。