Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

xsme's avatar
Level 2

5.4 Problem with TokenMismatchException in VerifyCsrfToken.php line 68

I seen many discussions about this Csrf problem, but any of this solutions didn't helps.

I have storage chmod

drwxrwxrwx  7 root         root       4096 Mar  4 14:15 storage

And also, I try many combinations with config/session.php changing

'domain' => env('SESSION_DOMAIN', null),

to

'domain' => env('SESSION_DOMAIN', 'mydomain.com'),

In resources/views/auth/login.blade.php i try

{{ csrf_field() }}

and

<input type="hidden" name="_token" value="<?php csrf_token(); ?>">

I still got this error when trying to login (post method). I'm trying to run this project from my computer on a vps.

And I tested clean installation of laravel. After make "artisan make:auth" i have same problem when trying post forms

0 likes
14 replies
Snapey's avatar

Please show your routes/web.php

xsme's avatar
Level 2

It does not matter, I found the solution. I pulled project as a root (I'm stupid) from github to my server.

When I pulled as a user different as root, everything works fine.

LaraStorm's avatar

can you show me your

  • routes/web.php
  • auth /login.blade.php

files ?

xsme's avatar
Level 2

web.php

<?php

Auth::routes();

login.blade.php

<!DOCTYPE html>
<html lang="en" class="fixed dark">
    <head>
        ...
        <meta name="csrf-token" content="{{ csrf_token() }}">
        ...
        <title>{{ config('app.name', 'Laravel') }}</title>
        ...
        <script>
            window.Laravel = <?php echo json_encode([
                'csrfToken' => csrf_token(),
            ]); ?>
        </script>
    </head>
<body>
    <section class="body-sign">
        <div class="center-sign">
            <a href="/" class="logo pull-left">
                <img src="{{ asset('images/logo.png') }}" height="54" alt="{{ config('app.name', 'Laravel') }}" />
            </a>
            <div class="panel panel-sign">
                <div class="panel-title-sign mt-xl text-right">
                    <h2 class="title text-uppercase text-weight-bold m-none"><i class="fa fa-user mr-xs"></i> @lang('routes.sign-in')</h2>
                </div>
                <div class="panel-body">
                    <form role="form" method="POST" action="{{ url('/login') }}">
                        {{ csrf_field() }}
                        <input type="hidden" name="_token" value="{{ csrf_token() }}">
                        <div class="form-group mb-lg {{ $errors->has('email') ? ' has-error' : '' }}">
                            <label>E-Mail</label>
                            <div class="input-group input-group-icon">
                                <input name="email" type="text" class="form-control input-lg" />
                                <span class="input-group-addon">
                                    <span class="icon icon-lg">
                                        <i class="fa fa-user"></i>
                                    </span>
                                </span>
                            </div>
                            @if ($errors->has('email'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('email') }}</strong>
                                </span>
                            @endif
                        </div>
                        <div class="form-group mb-lg">
                            <div class="clearfix">
                                <label class="pull-left">@lang('routes.password')</label>
                                {{-- <a href="{{ url('/password/reset') }}" class="pull-right">@lang('routes.lost-password')?</a> --}}
                            </div>
                            <div class="input-group input-group-icon">
                                <input name="password" type="password" class="form-control input-lg" value="{{ old('email') }}" required autofocus />
                                <span class="input-group-addon">
                                    <span class="icon icon-lg">
                                        <i class="fa fa-lock"></i>
                                    </span>
                                </span>
                            </div>
                            @if ($errors->has('password'))
                                <span class="help-block">
                                    <strong>{{ $errors->first('password') }}</strong>
                                </span>
                            @endif
                        </div>
                        <div class="row">
                            <div class="col-sm-8">
                                <div class="checkbox-custom checkbox-default">
                                    <input id="RememberMe" name="rememberme" type="checkbox" {{ old('remember') ? 'checked' : ''}}/>
                                    <label for="RememberMe">@lang('routes.remember-me')</label>
                                </div>
                            </div>
                            <div class="col-sm-4 text-right">
                                <button type="submit" class="btn btn-primary hidden-xs">@lang('routes.sign-in')</button>
                                <button type="submit" class="btn btn-primary btn-block btn-lg visible-xs mt-lg">@lang('routes.sign-in')</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>
    <script src="{{ asset('assets/vendor/jquery/jquery.js') }}"></script>
</body>
</html>
r17x's avatar

your domain match on env SESSION_DOMAIN ?

'domain' => env('SESSION_DOMAIN', 'mydomain.com'),
Snapey's avatar

So the problem was probably that the sessions folder was owned by root and the web server account could not save the session.

xsme's avatar
Level 2

No, i have now

'domain' => env('SESSION_DOMAIN', null),

Everything works fine now, I gave solution in second post.

dnsahoo's avatar

Hi,

I am also facing the same issue @xsme facing. I am using Laravel 5.4.

Please guide to resolve the issue.

artashespapikyan's avatar

Hi,

I am also facing the same issue when I leave open form long time, so if I leave open a form long time(lets say 4-5hr) then when I click submit I get that error

LennonCécere's avatar

Hello. I have this problem too. I have already created a new project and database, then I executed the "migrate" "auth" creation commands, but the error also happens. I'm from Brazil, sorry my bad vocabulary

jlrdw's avatar

@Snapey sounds like an enterprise ready to go application. Maybe Fedex will want to use it.

But seriously OP, install laravel correctly and securely.

Shahrukh4's avatar

If you alreade set the csrf_field() and tried everything else, try the following steps

  1). Remove 'SESSION_DRIVER' field from your .env
  2). Go to your config/session.php and in domain mark the second parameter of env() 
    to null i.e.

  'domain' => env('SESSION_DOMAIN', null)

  3). Run php artisan cache:config and php artisan cache:clear 
  4). Restart the server and clear your browser cache, and whoaa may be all things are 
  up and running now.

Please or to participate in this conversation.