生产中的TokenMismatchException


TokenMismatchException in production

我刚刚在服务器上运行了我的laravel应用程序。但是我在注册过程中出现了一个错误。它的意思是:

[2015-05-27 12:38:34] production.ERROR: exception 'Illuminate'Session'TokenMismatchException' in /var/www/vendor/compiled.php:2545

请帮助。该代码在本地环境下可以正常工作,但在生产环境下不行。

编辑:

            <div class="panel panel-default">
            <div class="panel-heading">Register</div>
            <div class="panel-body">
                @if (count($errors) > 0)
                    <div class="alert alert-danger">
                        <strong>Whoops!</strong> There were some problems with your input.<br><br>
                        <ul>
                            @foreach ($errors->all() as $error)
                                <li>{{ $error }}</li>
                            @endforeach
                        </ul>
                    </div>
                @endif
                <form class="form-horizontal" role="form" method="POST" action="{{ url('/auth/register') }}">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">
                    <div class="form-group">
                        <label class="col-md-4 control-label">Name</label>
                        <div class="col-md-6">
                            <input type="text" class="form-control" name="name" value="{{ old('name') }}">
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-md-4 control-label">E-Mail Address</label>
                        <div class="col-md-6">
                            <input type="email" class="form-control" name="email" value="{{ old('email') }}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-4 control-label">Password</label>
                        <div class="col-md-6">
                            <input type="password" class="form-control" name="password">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-4 control-label">Confirm Password</label>
                        <div class="col-md-6">
                            <input type="password" class="form-control" name="password_confirmation">
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-6 col-md-offset-4">
                            <button type="submit" class="btn btn-primary" name="submit">
                                Register
                            </button>
                        </div>
                    </div>
                </form>
            </div>

这里是我的postRegister的一部分,它是提供的。

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());
}

我的控制器,即AuthController是按提供的。甚至连路线都没碰过。

由于config/session.php中的安全配置,生产环境无法捕获错误。

默认设置为"false",如果您在托管服务器上使用SSL,请在远程服务器上的session.php文件中将"secure"的值从"false"更改为"true"

Session.php文件
'secure' => true //false

注意:我没有测试过。

来源:https://laracasts.com/discuss/channels/laravel/tokenmismatchexception-in-verifycsrftokenphp-line-67-in-laravel-52?page=2

请尝试在您的表单中添加-

<input type="hidden" name="_token" value="{{ csrf_token() }}">

详情请访问——http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken

相关文章:
  • 没有找到相关文章