Laravel 5 auth - 注册重定向到自身

时间:2016-03-24 13:15:13

标签: apache authentication laravel-5

我的laravel 5应用程序使用官方身份验证框架。在我的家园/流浪者环境中,一切运行良好但是当我尝试部署到生产服务器时,auth功能不起作用 - 例如,如果我尝试注册一个新用户,表单会重定向到自己并且不会#39; t在users表中创建条目。

Homestead vagrant正在运行nginx,而生产服务器正在运行Apache 2.4.6(我无法控制的东西)。 mod_rewrite已启用,public / .htaccess如下:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

我检查了laravel和apache日志,没有记录任何错误。

Apache虚拟主机配置

<VirtualHost *:80>
  ServerName example.com

  ## Vhost docroot
  DocumentRoot "/var/www/app/public"


  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>

  ## Logging
  ErrorLog "/var/log/httpd/laravel_error.log"
  ServerSignature Off
  CustomLog "/var/log/httpd/laravel_access.log" combined 
</VirtualHost>

更新: 来自 php artisan route:list 的路线列表的相关部分是:

|        | POST      | login                        |                    | App\Http\Controllers\Auth\AuthController@login                  | web,guest    |
|        | GET|HEAD  | login                        |                    | App\Http\Controllers\Auth\AuthController@showLoginForm          | web,guest    |
|        | GET|HEAD  | logout                       |                    | App\Http\Controllers\Auth\AuthController@logout                 | web          |
|        | POST      | password/email               |                    | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest    |
|        | POST      | password/reset               |                    | App\Http\Controllers\Auth\PasswordController@reset              | web,guest    |
|        | GET|HEAD  | password/reset/{token?}      |                    | App\Http\Controllers\Auth\PasswordController@showResetForm      | web,guest    |
|        | POST      | register                     |                    | App\Http\Controllers\Auth\AuthController@register               | web,guest    |
|        | GET|HEAD  | register                     |                    | App\Http\Controllers\Auth\AuthController@showRegistrationForm   | web,guest    |

并且 routes.php 文件中的相关部分如下所示:

Route::group(['middleware' => ['web']], function () {

    Route::auth();
    ...
}

2 个答案:

答案 0 :(得分:1)

尝试将.htaccess文件更新到最新版本(如下)。可能是URL中的尾部斜杠导致第二次重定向。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

答案 1 :(得分:0)

好的,设法解决了 - 我会在这里分享答案。

该网站正在运行https,我终于意识到注册表单试图将详细信息传递给导致问题的http路由。

我修改了auth表单以通过https发布表单并且所有工作都已完成。