我刚刚在服务器上运行了我的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也是如此。除了路线甚至没有触及。它适用于本地,但不适用于生产。
答案 0 :(得分:0)
由于 config / session.php中的安全配置,生产没有发现错误。
默认设置为&#34; false&#34;如果您在托管服务器上使用SSL,请更改&#39; secure&#39;从远程服务器上的session.php文件中的&#34; false&#34; 到&#34; true&#34; 。
Session.php文件
'secure' => true //false
注意:我没有测试过。
答案 1 :(得分:-2)
请尝试在表单中添加此内容 -
<input type="hidden" name="_token" value="{{ csrf_token() }}">
有关详细信息,请访问 - http://laravel.io/forum/01-30-2015-laravel5-tokenmismatchexception-in-verifycsrftoken