我已经搜索了所有主题,没有任何帮助。在我的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('/');
}
}
config / 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域,将会话从文件更改为数据库。没有任何帮助。
编辑: 我只是将会话数据库与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);
}
}
答案 0 :(得分:0)
令人尴尬的错误。在服务器设置中激活了PHP-FPM,它将完整的PHP请求放入缓存中。没有FPM,Laravel页面可以按预期工作。