【问题标题】:laravel 5.1 check if a session is expiredlaravel 5.1 检查会话是否过期
【发布时间】:2018-04-10 02:29:06
【问题描述】:

我正在开发一个 laravel 5.1 应用程序,我想在每次请求后检查用户会话是否已过期,以便将用户重定向到登录页面。 为了做到这一点,我创建了一个在每个请求上运行的中间件,句柄函数看起来像这样

public function handle($request, Closure $next)
{
     if(session_status() === PHP_SESSION_NONE)
     {
          return redirect()->guest('login');
     }
     return $next($request);
}

这似乎无法正常工作,因为当我在 google chrome 中输入“localhost:8000”时,它显示“localhost 将您重定向了太多次”,我猜这是因为会话尚未启动,因为用户不是登录了,所以...有没有更好的方法来做这个检查?

【问题讨论】:

    标签: php laravel session laravel-5.1 php-5.6


    【解决方案1】:

    您可以在某些路由中禁用中间件。通过将登录路由添加到 excepted_urls 数组。例如,在类的开头添加以下内容:

     protected $except_urls = [
            'login'
        ];
    

    或者你可以在 web.php/routes.php 中禁用它,具体取决于你使用的 Laravel 版本,方法是使用路由分组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-27
      • 2015-09-15
      • 2021-04-05
      • 2018-04-04
      • 2011-01-05
      • 2016-11-20
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多