Laravel 5.3 RESTful API без аутентификации

#api #laravel #authentication #restful-architecture

#API #laravel #аутентификация #restful-архитектура

Вопрос:

Я хочу создать API с Laravel 5.3, но мне не нужна какая-либо аутентификация. Можно ли от этого избавиться? Мне не нужен какой-либо токен или какой-либо вид аутентификации.

Комментарии:

1. Да, это возможно

Ответ №1:

Да, обычно это возможно в вашем

route/api.php

у вас было бы что-то вроде

 Route::middleware('auth:api')->get('/user', function (Request $request) {
   return $request->user();
});
 

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

 Route::middleware('api')->get('/user', function (Request $request) {
  return $request->user();
  //middleware('api') URI prefix. which would become '/api/user'
});
 

или

 Route::apiResource('user', 'UserController');
//same as above but includes crud methods excluding 'create and edit'
 

Ответ №2:

Чтобы помочь любому в моей ситуации, кто прибудет сюда : имейте в виду, что любой маршрут в api.php имеет префикс «api/». Он установлен в /app/Providers/RouteServiceProvider.php .

Итак :

Route::get('/delegates', "APIController@delegate");

Будет доступен из

http://www.yourdomain.com/api/delegates

Извините, если это немного не по теме, но надеюсь, это кому-то поможет.

Ответ №3:

Конечно, вы можете избавиться от него. Просто настройте свои маршруты так, чтобы они не использовали промежуточное программное обеспечение.

Создайте свои маршруты API в routes/api.php файле, затем измените app/Http/Kernel.php файл, чтобы правильно настроить промежуточные программы:

Удалите (или добавьте) промежуточные программы, которые вам не нужны в api группе промежуточного программного обеспечения.

По умолчанию L5.3 поставляется с двумя промежуточными программами в api группе:

 'api' => [
            'throttle:60,1',
            'bindings',
        ],
 

Первый обеспечивает ограничение скорости для вашего API (60 запросов в минуту),
второй заменяет привязки вашей модели.

Ответ №4:

Это возможно, просто создайте маршрут к вашему контроллеру и верните данные (без какого-либо промежуточного программного обеспечения аутентификации).

Ответ №5:

Разрешить запуск вашего маршрута без авторизации

 HttpMiddlewareVerifyCsrfToken
public function handle($request, Closure $next)
{
  if (!$request->is('api/*'))
  {
    return parent::handle($request, $next);
  }

  return $next($request);
}
 

Задайте маршрут следующим образом

 'api' => 'APIController'
 

Это метод в ApiController (‘/api/data’)

 public function getData(Request $request)
{
  return "Hello";
}
 

Комментарии:

1. Промежуточное программное обеспечение VerifyCsrfToken не является тем, кто проверяет подлинность пользователей. Ваш ответ не решает проблему аутентификации.