Всем привет, у меня laravel 5.8.38 - и возник вот какой вопрос.
В ларе есть стандартный метод
Auth::login($user,true);
Который логинит пользователя из контролера, если я делаю так
Auth::login($user,true);
dump(auth()->user());
То auth()->user() выводит нужного пользователя все ок, но блин как он его логинит? как он запоминает что этот пользователь авторизован? Я думал что это делается по сессионым кукам, но кук нет вообще.
после успешной авторизации я возвращаю json
return response()->json(['user' => $user], 200);
По идее с ответом json должны приехать сессионные куки но их нет вообще. WTF? Должен ли я как то руками выставлять эти куки? тогда зачем нужен Auth::login ?
Собственно сам контроллер:
$code = $request->code;
preg_match("/(7[0-9]{10})/", $request->phone, $matches);
$phone = $matches[0];
$user = User::query()
->with('orders.items.product')
->where('phone', $phone)
->where('sms_code', $code)
->first();
$token = Str::random(60);
$token = hash('sha256', $token);
if ($user) {
// Log in current user
$user->update([
'token' => $token,
'sms_code' => null
]);
Auth::login($user,true);
return response()->json(['user' => $user], 200);
} else {
return response()
->json(['message' => 'Go away, pls'. $phone], 404)
->withCookie(cookie('token', $token, 0));
}