【发布时间】:2021-04-29 10:13:13
【问题描述】:
我想以一种简单的方式手动对用户进行身份验证,但我无法在路由之间保持会话。
我用 Laravel 微风 全新安装了 Laravel 8,配置微风后我可以创建用户并通过微风登录与用户登录屏幕,但如果我尝试手动为用户创建会话(跳过用户通过检查),则会话不会持久
要测试:我首先进入 /manual 用户经过身份验证的位置,然后检查路由 /tes 上的会话。但是浏览器中没有注册会话/cookie!!!
这是路由器
Route::get('/test', [TestController::class, 'testSession']);
Route::get('/manual', [TestController::class, 'manualLogin']);
这是控制器
class TestController extends Controller
{
public function testSession(Request $request)
{
dump(Auth::user());
}
public function manualLogin(Request $request)
{
$user = User::where('id', 3)->first();
Auth::login($user, true);
dump(Auth::user());
}
这是带有 web 中间件组的路由:
+----------+---------------------------------+-------------------------------------------------------+--------------+
| Method | URI | Action | Middleware |
+----------+---------------------------------+----------------------------------------------------------------------+
| GET|HEAD | manual | App\Http\Controllers\TestController@manualLogin | web |
| GET|HEAD | test | App\Http\Controllers\TestController@testSession | web |
+----------+---------------------------------+----------------------------------------------------------------------+
这是中间件组app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
我错过了什么,但是什么?
编辑:添加中间件信息
【问题讨论】:
标签: php laravel authentication laravel-8