【问题标题】:Laravel Auth::onceBasic() remembering authenticationLaravel Auth::onceBasic() 记住身份验证
【发布时间】:2014-10-16 10:39:31
【问题描述】:

我正在尝试做类似于这里的事情,但不是针对 API:Fully disable cookies in 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 中进行了测试,结果相同。

【问题讨论】:

  • 这不是 laravel 的问题,它只是基本身份验证的设计方式。用户保持登录状态,直到浏览器关闭。 stackoverflow.com/questions/18295994/…
  • @Jeemusu - 好吧,很公平。没有意义,但这似乎是来自链接问题的共识,它是链接资源。如果您添加答案,将标记为已解决。谢谢
  • 另外,为什么不强制用户在每次尝试访问该页面时使用单独的登录方法。不要使用 laravel auth::attempt,而是创建一个新方法来简单地检查凭据,如果它通过,则设置一个新的会话变量。
  • 我会试一试。 :)

标签: php authentication laravel-4


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2021-08-12
  • 1970-01-01
  • 2017-03-15
  • 2014-01-24
  • 1970-01-01
  • 2013-05-30
  • 2015-01-02
  • 2018-06-06
相关资源
最近更新 更多