Ich verwende die Express-Middleware CSURF für CSRF-Schutz. Wenn ich es mit Formularen verwende, wo ich den Token in ein verstecktes Feld setze, funktioniert die Aktion hinter den Routen. Jetzt möchte ich einen einfachen AJAX-Anruf machen, aber dort sagt csurf seinen ungültigen.csurf AJAX-Aufruf - ungültiges CSRF-Token
AJAX-Aufruf:
$('.remove').on('click', function() {
var csrf = $(this).attr('data-csrf');
$.ajax({
type: 'DELETE',
url: '/user/' + $(this).attr('data-id'),
data: {
_csrf: csrf
},
success: function (data) {
//.....
}
});
});
Und der Teil in der Ansicht:
<td class="uk-table-middle">
<button data-id="{{ _id }}" data-csrf="{{ csrfToken }}" class="uk-button-link uk-text-large remove">
<i class="uk-icon-remove"></i>
</button>
</td>
Und die init von der Middleware:
import * as csurf from 'csurf';
// init bodyparse and and and...
app.use(csurf());
das hat mir nicht geholfen. Der Grund, warum es nicht funktionierte, war, dass ich ein Array und das Token an die Vorlage sendete. Und in der Vorlage ich Iterate durch das Array und in diesem Bereich das Token nicht gefunden .... wusste nicht, dass ._. – R3Tech