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

时间:2014-08-10 18:41:03

标签: php authentication laravel-4

我正在尝试执行与此类似的操作,但不适用于API:Fully disable cookies in Laravel 4 API

基本上,我有一个登录部分,用户可以下载特定文件并执行其他操作。在他们下载之前,我希望他们必须输入用户名和&密码再次作为额外的安全性(想想一些银行会为你下载你的陈述的方式。)我的标准auth工作正常。我已经设法实现Auth::onceBasic()好了,但它记得我已登录并且不会多次问我(即使关闭浏览器!)。

当我找到关于将session.driver设置为array的上述链接时,它似乎无效。我已经关闭了我的主要登录信息,因此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中测试过相同的结果。

1 个答案:

答案 0 :(得分:3)

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