Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

311
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda