我正在尝试执行与此类似的操作,但不适用于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中测试过相同的结果。
答案 0 :(得分:3)
Laravels Auth::onceBasic()
使用HTTP基本身份验证,该身份验证不是为处理您的用例而设计的。使用基本身份验证,用户将保持登录状态,直到浏览器关闭。