Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.04.2020 14:16:39

Передача пользователя в публичный роут

Добрый день, столкнулся с проблемой при прописывание маршрута.
Если маршрут является публичным то в него не передаётся пользователь.

Route::middleware('auth:api')->group( function () {
    Route::resource('api/posts', 'API\PostController');
});

Route::get('api/posts', 'API\PostController@index');

Скорее всего я так же не правильно прописал роут, можно как-то более аккуратно, потому как получается у меня один заменяет другой.

Но сейчас вопрос в том, что если я удаляю последнюю строку, то пользователь передаётся и его можно достать. Потому как route лежит в middleware, в то время если мы оставляем последнюю строку, то уже не передаётся пользователь.

Мне нужен маршрут для обоих пользователей одинаковый, а внутри контроллера мне уже нужно посмотреть, есть или нет авторизованный пользователь.
Больше спасибо всем кто уделил время.

Не в сети

#2 13.04.2020 14:47:37

Re: Передача пользователя в публичный роут

1. Это неоднозначное описание маршрутов. resource подразумевает в том числе и index. Если ты хочешь определить один из экшенов отдельно, то надо прописать его сначала в списке исключений Route::resource(...)->except(['index'])
https://laravel.com/docs/7.x/controller … rce-routes

2. Когда никакой аутентификационный посредник не указан для маршрута, логично что в нём пользователь не определён.

Непонятно что ты имел в виду под словами "маршрут для обоих пользователей одинаковый".

Думаю по смыслу здесь не "авторизованный" а "аутентифицированный" больше подходит. Вечно вы путаете одно с другим smile Авторизованный значит получивший право на некое действие. Ааутентифицированный значит просто опознанный, или залогиненный, если так понятней.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 13.04.2020 14:53:36

Re: Передача пользователя в публичный роут

В документации есть отдельные страницы про аутентификацию и авторизацию. Это не зря! Они логически связаны, но это совсем не одно и то же.


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#4 13.04.2020 15:06:50

Re: Передача пользователя в публичный роут

Добрый день. Большое спасибо за советы
1. Исправил и исключил
2. Да, мне нужно просто понимать кто он, следовательно "аутентифицированный" или нет.
3. Как только я добавляю посредника, то сообщение об ошибке авторизации идёт и уже гости не могут получить данные, в документации к сожалению я не нашёл этого и на форумах вроде тоже. Может я не туда смотрю? Спасибо за помощь.

Не в сети

#5 14.04.2020 11:17:43

Re: Передача пользователя в публичный роут

Всем спасибо, кто обратил внимание на эту тему.
Оказывается можно получить пользователя следующим способом

Auth::guard('api')->user();

где api, напишите только свой источник.

Не в сети

Подвал раздела