Laravel авторизация и аутентификация

Рейтинг: 0Ответов: 0Опубликовано: 27.07.2023

Я понимаю что и школа давалась мне тяжко, и понять документацию и её полноту не могу. Даже не понимаю. Вот авторизация пользователя:

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. Но авторизацию не работает, что не так?

Ответы

Ответов пока нет.