我刚刚在服务器上运行了我的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