У меня проблема, когда маршрут вызывает метод контроллера после успешного входа в систему.
В новом методе пользователь, похоже, не вошел в систему. Я не могу понять почему.
Шаги: Войдите в систему с помощью
Route::post('login', 'UserController@login')->name('login');
, а затем проверьте, вошел ли пользователь с помощью:
Route::get('check-login', 'UserController@checklogged');
Контроллер это one:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Faker\Generator as Faker;
class UserController extends Controller
{
// regole per FormValidator
protected $rulesLogin = [
'email' => 'bail|required|email',
'password' => 'required',
];
// Effettuo il login
/**
* Method: POST
* @Parameters: email, password
* return: Authenticated User.
*/
public function login(Request $request)
{
//dd($request->all());
$validator = Validator::make($request->all(),$this->rulesLogin);
// login fallito
if ($validator->failed()) {
return response([
'status' => 'ko',
'message' => $validator->errors()->first(),
], 422);
}
// login errato
if (!Auth::attempt([
'email' => $request->email,
'password' => $request->password,
'status' => ['active'],
])) {
return response(
[
'status' => 'ko',
'message' => 'Invalid email or password',
], 422);
}
return (Auth::user());
}
public function checklogged()
{
return dd(Auth::id());
}
checklogged () всегда возвращает false. Я ожидаю, что он вернет зарегистрированный пользователем идентификатор