记住未使用 Laravel 的用户
Remembering Users not working with Laravel
我关注了 manual 因为
我想将 remember_me
标记与 Laravel 一起使用。为了验证它是否有效,我有一个测试 middleware
做:
Auth::loginUsingId(1, true);
return $next($request);
稍后,在我的测试视图中我有:
{{@if (Auth::check())}}
Yeah!
{{@endif}}
所以是的,我已通过身份验证,但不,我没有设置任何 remember_me
cookie。我只看到会话 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
]
更改会话驱动程序以使用 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
。
我关注了 manual 因为
我想将 remember_me
标记与 Laravel 一起使用。为了验证它是否有效,我有一个测试 middleware
做:
Auth::loginUsingId(1, true);
return $next($request);
稍后,在我的测试视图中我有:
{{@if (Auth::check())}}
Yeah!
{{@endif}}
所以是的,我已通过身份验证,但不,我没有设置任何 remember_me
cookie。我只看到会话 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
]
更改会话驱动程序以使用 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
。