Проверка аутентификации для URL-адреса без аутентификации в api паспорта laravel

Я использую аутентификацию по паспорту для своего Laravel 5.4 API. здесь у меня есть api для информации о компании, и это api без авторизации. Мне нужно проверить авторизованный пользователь, которому понравилась эта компания, используя auth в этом URL ... как я могу это сделать

Это мой маршрут

   Route::get('/company/{company}','Api\V1\CompanyController@show');
Route::group(['middleware' => 'auth:api','prefix'=>'v1'], function(){
//auth urls
}

а это мой контроллер

class CompanyController extends Controller
{
    public function show(Company $company,Request $request)
    {
        $data                           =   array();
        $flag                           =   0;
        $data['status']                 =   1;
        $data['message']                =   'success';
        $data['baseUrl']                =    url('/');
        $data['is_login']               =   Auth::check(); 

Здесь is_login всегда возвращает false, если я добавил токен авторизации в заголовки api.

Итак, у вас есть раздел, который не требует аутентификации, но вы все равно хотите получить аутентифицированного пользователя?

lagbox 13.08.2018 08:21

маршруты с auth:api выдают ошибку, если гость? auth()->check() в другом месте работает?

Илья Зеленько 13.08.2018 08:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
998
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Какая у вас установленная по умолчанию охрана?

Auth::check() - это Auth::guard(null)->check(), который использует текущую защиту по умолчанию.

Если вы хотите проверить api, вы, вероятно, захотите использовать защиту api так же, как ваше промежуточное программное обеспечение auth, когда вы используете auth:api.

Auth::guard('api')->check() сообщает ему явно использовать защиту api вместо того, что установлено по умолчанию, что может быть любым, поскольку мы не знаем, что вы установили.

Когда промежуточное программное обеспечение auth запускается, оно фактически устанавливает для вас защиту по умолчанию в зависимости от того, какие средства защиты переданы ему и от кого он может разрешить пользователя. Вот почему вы можете просто вызвать Auth::user() и получить правильного пользователя от правильного охранника, потому что промежуточное программное обеспечение устанавливает текущий на тот, который разрешил пользователя. (При вызове маршрутов с этим промежуточным ПО)

Другие вопросы по теме