i’m using laravel 12 and try to use middleware to check the user is login or not.
I set the session value in api Controller, but, when I call this value in middleware, it will be null.
and my log only show the token in session.
how to get session value correctly?
my laravel_session in header and session value in database:
laravel_session=fca6d3xPRfTdlHBSTJWBd0KvaieSdKPbcGkFBZxa
a:3:{s:6:"_token";s:40:"0hYLgh1hHAZNW2Ar8E6MDBP5zKJXlLynSjt4dgTp";s:4:"user";s:5:"admin";s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
i’m use the session function to set global session value.
i’m sure that name is not null.
// loginVerify
$validate = $request->authenticate();
if ($validate) {
$post = $request->post()['body'];
$acct = User::where([['email', '=', $post['acct']],['password', '=', $post['ps']]])->first();
session(['user' => $acct['name']]);
return $acct;
}
log not show user value in my session
my session value: {"_token":"T9EtbOAiUwUYc9s1l1gC4TrdSkTj8nT9SDFbqTIA"}
// middleware managePage
public function handle(Request $request, Closure $next): Response
{
Log::debug ('my session value: ' . json_encode(session()->all()));
dd($request->header('Cookie'));
if (empty(session('user'))) {
return redirect('/managerLogin');
}
return $next($request);
}
here is my middleware setting:
$middleware->prependToGroup('manageSetting', [
IlluminateSessionMiddlewareStartSession::class,
]);
$middleware->appendToGroup('managePage', [
ManagerPage::class,
]);
and this is my route setting:
// web route
Route::middleware(['manageSetting', 'managePage'])->group(function () {
Route::get('/homeManage', function () {
return Inertia::render('manage/homeManage');
});
Route::get('/groupManage', function () {
return Inertia::render('manage/groupManage');
});
});
Route::middleware(['manageSetting'])->group(function() {
Route::get('/managerLogin', function () {
return Inertia::render('manage/login');
})->name('managerlogin');
});
//api route
Route::middleware(['manageSetting'])->group(function () {
Route::post('/updateGroup', [GroupController::class, 'update']);
Route::post('/updateHome', [KeyVisualController::class, 'update']);
Route::post('/loginVerify', [UserController::class, 'login']);
});