Laravel会话处理无需登录即可重定向

时间:2018-05-30 09:47:16

标签: php laravel

嗨,我有一个登录表单,当用户登录时,它应该打开页面,即如果用户直接输入url,它应该重定向回登录页面。 在laravel我读了Auth :: check(),但我使用auth.php进行不同的登录,这是正常的。但我创建了新的登录页面,因为我无法使用auth.php如何继续查看是否设置了会话,如果没有重定向到laravel中的登录页面;

<?php
class TelecallController extends BaseController {

    public function __construct() {
       $this->beforeFilter(function () {
            if(!Session::has('telecall_id'))
            {
             return Redirect::to('/8032/telecalls/login');
            }
        }, array('except' => array('')));
    }
}

但是我收到以下错误

ERR_TOO_MANY_REDIRECTS

1 个答案:

答案 0 :(得分:0)

你得到的错误很简单,看:

if(!Session::has('telecall_id'))
{
   return Redirect::to('/8032/telecalls/login');
}

!Session::has('telecall_id')的结果在开头为TRUE。 当您转到return Redirect::to('/8032/telecalls/login');时,telecall_id的会话值没有任何变化,这就是您一次又一次重定向的原因。

重定向后,您需要确保if(!Session::has('telecall_id'))的结果为FALSE。所以 - 你需要正确设置会话值。

您可以在这里正确准备会话:https://laravel.com/docs/5.6/session