Вход и выход из системы иногда видны только после обновления страниц - PullRequest
2 голосов
/ 15 мая 2019

Я уже искал все темы, и ничего не помогло. В моей установке Laravel иногда приходится перезагружать страницу после входа в систему и выхода из нее, чтобы сделать ее видимой. Очень редко вы вообще не входите в систему или не выходите из нее.

Я использую Laravel 5.6.39.

Контроллер входа

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Auth;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use Session;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    protected function authenticated(Request $request, $user)
    {
    }

    public function logout()
    {
        Auth::logout();
        Session::flush();
        return Redirect::to('/');
    }
}

конфиг / session.php

return [

    'driver' => env('SESSION_DRIVER', 'database'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => true,
    'files' => storage_path('framework/sessions'),
    'connection' => 'mysql',
    'table' => 'sessions',
    'store' => null,
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        str_slug(env('APP_NAME', 'laravel'), '').'session'
    ),

    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE', false),
    'http_only' => true,
    'same_site' => null,
];

RedirectIfAuthenticated.php промежуточное ПО

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/');
        }

        return $next($request);
    }
}

Я также пытался изменить имя файла cookie, определить домен файла cookie, изменить сеанс с файла на базу данных. Ничего не помогло.

Edit: Я только что сравнил сессионную базу данных с cookie. В базе данных у меня правильный статус по сравнению с cookie, только сам Laravel говорит, что вы не вошли или не вышли из системы.

Мой RedirectIfAuthenticated без изменений

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RedirectIfAuthenticated
{
    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            return redirect('/');
        }

        return $next($request);
    }
}

1 Ответ

0 голосов
/ 16 мая 2019

неловкая ошибка.PHP-FPM был активирован в настройках сервера, которые помещают полные PHP-запросы в кеш.Без FPM страница Laravel работает как хотелось бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...