Laravel авторизация и аутентификация
Я понимаю что и школа давалась мне тяжко, и понять документацию и её полноту не могу. Даже не понимаю. Вот авторизация пользователя:
class AuthController extends Controller
{
public function __invoke(AuthRequest $request)
{
$credentials = $request->only('login', 'password');
if (Auth::attempt($credentials)){
$token = Auth::user()->createToken('token')->plainTextToken;
return response()->json(['success'=>true, 'token' => $token]);
}
return response()->json(['success'=>false]);
}
}
Auth::attempt($credentials)
-- происходит аутентификация пользователя. Я могу сохранять токен в куках и проверять каждый раз есть ли токен у пользователя для доступа к страницам сайта. Но потом понял что токен не обязателен. Тогда зачем он вообще? И когда пишу:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
После аутентификации пользователя все равно не впускает на страницу /user
. Может беда с бд? Оно у меня вот такое:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('login', 45)->unique()->nullable();
$table->enum('role', ['user', 'admin', 'developer', 'salesman'])->default('user');
$table->string('email', 56)->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->string('name')->nullable();
$table->string('surname')->nullable();
$table->timestamps();
});
И как получать тогда данные пользователя? Например отображать его всегда в header
если он авторизован. Как создать такую логику -- что бы каждая страница если пользователь авторизован получать данные и отображать в header
. Но авторизацию не работает, что не так?