VerifyCsrfToken.php Laravel中的TokenMismatchException

时间:2016-08-27 13:08:58

标签: php laravel laravel-5.2

我有这个表单在Localhost上工作但是当我上传到我的共享主机时,他们会抛出 VerifyCsrfToken.php第67行

这里是代码:

<form class="form-horizontal" role="form" method="POST" action="{{ url('/login') }}">
    {{ csrf_field() }}

    <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
        <label for="email" class="col-md-4 control-label">E-Mail Address</label>

        <div class="col-md-6">
            <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}">

            @if ($errors->has('email'))
                <span class="help-block">
                    <strong>{{ $errors->first('email') }}</strong>
                </span>
            @endif
        </div>
    </div>

    <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
        <label for="password" class="col-md-4 control-label">Password</label>

        <div class="col-md-6">
            <input id="password" type="password" class="form-control" name="password">

            @if ($errors->has('password'))
                <span class="help-block">
                    <strong>{{ $errors->first('password') }}</strong>
                </span>
            @endif
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-6 col-md-offset-4">
            <div class="checkbox">
                <label>
                    <input type="checkbox" name="remember"> Remember Me
                </label>
            </div>
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-6 col-md-offset-4">
            <button type="submit" class="btn btn-primary">
                <i class="fa fa-btn fa-sign-in"></i> Login
            </button>

            <a class="btn btn-link" href="{{ url('/password/reset') }}">Forgot Your Password?</a>

            <a href="{{ url('/auth/facebook') }}">FB Login</a>

        </div>
    </div>
</form>

我在{head}标签中添加了<meta name="csrf-token" content="{{ csrf_token() }}" />,但它不起作用。令牌没问题,当我使用Google Chrome Inspector进行检查时,表单上会显示该令牌。如果有人可以提供帮助,我真的被困在这里。

3 个答案:

答案 0 :(得分:1)

检查您的会话目录以获取正确的权限,这可能会有所帮助。

rm -f {your_web_app}/storage/framework/sessions/*

答案 1 :(得分:1)

您在会话存储方面遇到问题

解决方案1 ​​:使用数据库会话驱动程序而不是文件会话驱动程序

- 在.env

SESSION_DRIVER=database

- 运行命令

php artisan session:table

- 然后

php artisan migrate

再次测试

解决方案2 :继续使用文件会话驱动程序。确保您拥有存储文件夹的写入权限。尝试

chmod 755 -R storage

答案 2 :(得分:0)

我正在使用这种方法。

<input type="hidden" name="_token" value="{{ session()->getToken() }}">

在您的视图刀片中。