Ich verwende Spring Security für die Authentifizierung meiner REST-API. Die Authentifizierung funktioniert einwandfrei und Spring Security gibt ein Token mit Set-Cookie
zurück. Das Feature rememberMe
ist aktiviert und wird im Cookie zurückgegeben.
Wenn ich nachfolgende Anfragen mache, schlägt die Authentifizierung fehl, wenn ich nicht den Benutzernamen / das Passwort in der Kopfzeile Authorization
sende, während ich im Postman teste, funktioniert es. Ich sehe, dass JSESSIONID
im Cookie in der Anfrage hinzugefügt wird.
Da der Cookie als Http-Only
cookie, glaube ich nicht, dass ich sie in meiner JavaScript-Funktion lesen kann.
Wie authentifiziere ich den Benutzer? Ich ging davon aus, dass wenn der Server einen Cookie mit set-cookie
zurückgibt, der Browser ihn automatisch für jede Anfrage anhängen sollte.
Login-Client-Anfrage:
%Vor%Anforderungsheader:
%Vor%Antwortheader:
%Vor%Nachfolgende Anforderung zum Abrufen von Daten:
%Vor%Kundenanfrage:
%Vor%Serverantwort:
%Vor% Hinzufügen von withCredentials : true
:
Antwort:
%Vor%Zu Ihrer Information: Ich benutze Vuejs im Frontend.
Nachdem Sie Ihren Antwort- / Anfrageablauf sorgfältig geprüft haben, senden Sie Anfragen von Port 8080 an Port 9000, die Regeln für dieselbe Ursprungsrichtlinie (CORS) auslösen. CORS-Anfragen senden standardmäßig keine Credentials / Cookies, wie im nachfolgenden Link dokumentiert. Um die Weitergabe von Anmeldeinformationen / Cookies zu aktivieren, müssen Sie das Flag "withCredentials" in Ihrem AJAX-Aufruf festlegen.
Außerdem sieht es so aus, als ob du Vuejs benutzt. Um credentials zu aktivieren, müssen Sie die folgende Einstellung verwenden.
%Vor%Tags und Links spring-security spring-boot cookies vuejs2