我正在尝试做类似的事情在这里,但不是一个API:完全禁用cookie在Laravel 4 API
基本上,我有一个登录部分,用户可以下载特定的文件和做其他事情。在下载之前,我希望他们必须输入用户名&再次设置密码作为额外的安全措施(就像一些银行为你下载账单所做的那样)。我的标准函数运行正常。我已经设法实现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上测试了同样的结果。
Laravels Auth::onceBasic()
使用HTTP基本身份验证,这不是为了处理您的用例而设计的。通过基本身份验证,用户将保持登录状态,直到浏览器关闭。