Laravel 5身份验证不起作用


laravel 5 authentication not working

我有以下问题。我正在开发一个使用 php 和 laravel 5.0.33 的网站。我有一台开发机器和一个 Web 服务器。

现在,我正在通过覆盖 AuthenticatesAndRegistersUsers postRegister 方法拦截注册过程,但没有运气,因为拦截不是在服务器上执行的,在我的本地环境中一切都按预期工作。

我还在我的 AuthController 的 postRegister 方法上放置了一个die();,该方法覆盖了上述特征上定义的方法,并且永远不会到达该行。

<小时 />

'Illuminate'Foundation'Auth'AuthenticatesAndRegistersUsers上的原始性状方法:

public function postRegister(Request $request) {
    $validator = $this->registrar->validator($request->all());
    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }
    $this->auth->login($this->registrar->create($request->all()));
    return redirect($this->redirectPath());
}
<小时 />

我在 'Project'Http'Controllers'Auth'AuthController 上的身份验证控制器中覆盖的方法:

use AuthenticatesAndRegistersUsers;
//Override of the register process
public function postRegister('Illuminate'Http'Request $request) {
    die ('aqui');
}

那么,是什么阻止代码进入我的重写方法?在我的本地开发机器和服务器中,php 版本是相同的。

编辑:坏消息 如果我尝试在网站上登录用户,也会发生相同的行为,登录不是作为寄存器工作。请求永远不会到达控制器。这花了我一整天的时间....:(。在登录时,我还覆盖了一个方法。

因此,该错误是由于托管服务提供商在虚拟主机上完成的错误配置,其中所有请求 url 都会获得尾部斜杠,但如果完成 POST 请求并添加了尾部斜杠,则随后的重定向会将 POST 请求转换为 GET 请求。在向托管服务提供商解释两天后,我获得了修改虚拟主机配置的权限,并添加了一个规则以避免重定向 POST 请求。

这是修复之前的重定向:

   # Enforce trailing slash policy
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*[^/])$ /es/$1/ [L,R=301]

修复后的重定向:

   # Enforce trailing slash policy
 RewriteCond %{REQUEST_METHOD} !=POST
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*[^/])$ /es/$1/ [L,R=301]

感谢大家的关注和回复。