Запоминание пользователей, не работающих с Laravel - PullRequest
2 голосов
/ 27 июня 2019

Я следовал инструкции , потому что хотел бы использовать токен remember_me с Laravel.Чтобы убедиться, что это работает, у меня есть тест middleware, который выполняет:

Auth::loginUsingId(1, true);
return $next($request);

Позже, в моем тестовом виде у меня есть:

{{@if (Auth::check())}}
Yeah!
{{@endif}}

Так что да, я аутентифицирован, но нет, янет набора файлов cookie remember_me.Я вижу только сессионный cookie.

Я также пытался использовать Auth::User()->setRememberToken('foobar'), но получил тот же результат: нет remember_me cookie.

В соответствии с рекомендациями этого вопроса я установил настройки сеанса на:

'lifetime' => 10080,
'expire_on_close' => true,

Из этого другого вопроса Я подтвердил, что AuthenticateSession промежуточное ПО включено:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middlewares\Test::class, // Auth user 1 by id
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\Session\Middleware\AuthenticateSession::class,
    ],

Конечно, если я сделаю следующее, я получу false:

dd(Auth::viaRemember());

Некоторые другие подобные вопросы советуют использовать cookies для сессии,Мой config('session') выглядит так:

array:15 [▼
  "driver" => "cookie"
  "lifetime" => 10080
  "expire_on_close" => true
  "encrypt" => false
  "connection" => null
  "table" => "sessions"
  "store" => null
  "cookie" => "laravel_session"
  "path" => "/"
  "domain" => null
  "secure" => false
  "http_only" => true
  "same_site" => null
]

1 Ответ

4 голосов
/ 27 июня 2019

Изменить драйвер сеанса для использования cookie Как:

.env

SESSION_DRIVER=cookie

ИЛИ

app/config/session.php

'driver' => 'cookie',

Такжеизменил порядок промежуточного ПО, например:

'web' => [ 

    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\Session\Middleware\AuthenticateSession::class,
    \App\Http\Middlewares\Test::class, // Auth user 1 by id 
],

И, наконец, что не менее важно, убедитесь, что у вас включено промежуточное ПО AddQueuedCookiesToResponse.

...