Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

302
Views
Laravel 5.4 + Ajax es igual a 401 Sin autenticar

Cada vez que intento asignar una ruta desde mi archivo api.php , aparece un error 401: Unauthenticated .

Esta es la ruta:

 Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function () { Route::post('admin/product-image-sort', 'ApiController@SaveProductImageSort')->name('api.save-product-image-sort'); });

Estoy llamando a esto usando Jquery Ajax:

 <script> $('#sortable-image-container').sortable({ items: '> .row > *', update: function (event, ui) { var data = $(this).sortable('serialize'); console.log(data); $.ajax({ data: data, type: 'POST', url: "{{ route('api.save-product-image-sort') }}", success: function (data) { if(data == "success"){ $.notify({ icon: 'pe-7s-close-circle', message: "Sucessfully saved the Image Sorting" },{ type: 'success', timer: 500 }); } } }); } }); </script>

Así que esto funciona perfectamente cuando se excluye la parte 'middleware' => 'auth:api' pero no quiero permitir el acceso a mi api interna sin ningún tipo de autenticación.

Lo que hace la API es enviar una serie de ID que obtuvo mediante una serialización de Sortable de jQuery Ui. El ApiController luego busca a través de eso y actualizó la clasificación de cada imagen de un producto específico.

Incluí el token CSRF como se indica en Laravel Docs al colocar csrf_token() en una metaetiqueta y adjuntarlo a cada solicitud de Ajax:

 $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });

Como también puedo ver en la pestaña de red de Chrome es que agrega dos cookies a la solicitud.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El punto es que no estás autenticado. El token CSRF no es un token de autenticación.

Necesitará una forma de autenticar a sus usuarios contra la API y (por ejemplo) darles un token de autenticación único, que envían con cada solicitud, para asegurarse de que puedan usar su API.

Tal vez este enlace puede ser útil:

https://laracasts.com/discuss/channels/laravel/53-api-routes-auth-middleware-confusion

Esta parte de los documentos también puede ser útil. Se trata de la autenticación básica HTTP:

https://laravel.com/docs/5.4/authentication#http-basic-authentication

Especialmente la parte "Autenticación básica HTTP sin estado"

over 4 years ago · Santiago Trujillo Report

0

Echemos un vistazo al método de construcción HomeController. ¿Hay una llamada que se parece a esto?

 $this->middleware(['auth']);
over 4 years ago · Santiago Trujillo Report

0

Tengo dos soluciones:

  1. Cree un controlador sin usar el middleware de autenticación: $this->middleware(['auth']);

  2. Crear la ruta antes de Route::group(['middleware' => 'auth'] en el archivo routes/web.php .

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!