Zawsze, gdy próbuję przypisać trasę z mojego pliku api.php
, otrzymuję komunikat o błędzie 401: Unauthenticated
.Laravel 5.4 + Ajax jest równy 401 Nieuwierzytelniony
Jest to trasa:
Route::group(['prefix' => 'v1', 'middleware' => 'auth:api'], function() {
Route::post('admin/product-image-sort', '[email protected]')->name('api.save-product-image-sort');
});
Im wywołanie to przy użyciu 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>
Tak to działa bez zarzutu, gdy wyłączając 'middleware' => 'auth:api'
część, ale nie chcę, aby umożliwić dostęp tylko mój wewnętrzny interfejs API bez jakiejkolwiek formy uwierzytelniania.
To, co robi api, to wysłanie tablicy identyfikatorów, które otrzymała przy użyciu serializacji sortable jQuery Ui. ApiController następnie wprowadza w tym celu i aktualizuje sortowanie każdego obrazu określonego produktu.
Podaję CSRF token lubię stwierdzono w laravel Docs poprzez umieszczenie csrf_token()
do meta-tag i dołączenie go do każdego żądania Ajax:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
Jak mogę też zobaczyć w karcie sieciowej Chrome jest że dodaje dwa pliki cookie do żądania.
hi nie znalazłeś jeszcze rozwiązanie? – utdev
@utdev Niestety nie. Czy robiłeś to w międzyczasie? Z góry dziękuję. – PoTTii
Podaj dane uwierzytelniające (token) lub usuń oprogramowanie pośrednie? –