Der Code lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Diese Konfiguration ermöglicht alle Zuordnungen, alle Anforderungsheader, alle Anforderungsmethoden und alle Quellen. Nachdem ich die Konfiguration geändert hatte, startete ich das Projekt entschlossen neu, um den Effekt zu sehen. Da ich sah, dass der Browserfehler durch domänenübergreifendes Umleiten verursacht wurde, fügte ich zunächst den Code hinzu Mein Login-Interceptor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
Verwenden Sie
1 |
|
, um direkt über das Front-End-Vue die Back-End-Anmeldeschnittstelle anzufordern. Anschließend greift das Front-End auf das System zu und kann direkt zur Single-Sign-In-Seite springen. Aber als ich mein Konto und mein Passwort eingegeben und auf „Anmelden“ geklickt habe, sprang ich zurück zum System und stellte fest, dass nicht auf alle Anforderungsdatenschnittstellen normal zugegriffen werden konnte. Debug stellte fest, dass alle Anforderungen keine Benutzerinformationen enthielten und vom Interceptor als erkannt wurden nicht angemeldet, daher konnten nicht alle Anfragen angenommen werden.
Warum bin ich eindeutig angemeldet und der Interceptor setzt auch Benutzerinformationen auf die Sitzung. Warum sind die Cookies weg? Ich habe erneut eine Anfrage initiiert und festgestellt, dass die JsessionId jeder Anfrage unterschiedlich war. Nachdem ich viele Informationen überprüft hatte, stellte ich fest, dass dem Frontend eine Konfiguration hinzugefügt werden muss, die Authentifizierungsinformationen ermöglicht. Eine entsprechende Konfiguration muss ebenfalls vorhanden sein im Backend erstelltallowCredentials(true);
1 |
|
Nachdem ich diese Konfiguration hinzugefügt habe, habe ich den Vorgang erneut ausgeführt und festgestellt, dass ich nach der Anmeldung normal zum System springen kann und die Seitendaten auch normal angezeigt werden.
Gerade als ich dachte, ich wäre fertig, klickte ich plötzlich auf eine Seite und die Daten konnten nicht normal angezeigt werden. Ich war so verwirrt, dass ich eine Anfragemethode fand, die ich noch nie zuvor gesehen hatte dass diese Anfragemethode POST ist. Warum ist sie zu OPTIONS geworden? Also bestellte ich mehrere andere POST-Anfragen und stellte fest, dass sie alle zu OPTIONS-Anfragen wurden. Ich war verwirrt und überprüfte schnell die Informationen von OPTIONS-Anfragen. Im Internet hieß es, dass OPTIONS-Anfragen „Vorabprüfungsanfragen“ heißen Nachdem die Anforderung ausgeführt wurde, initiiert der Browser zunächst eine Vorabprüfungsanforderung. Erst nachdem die Vorabprüfungsanforderung erfolgreich war, kann die formelle Anforderung ausgeführt werden. Nachdem ich es gelesen hatte, wurde mir plötzlich klar, dass OPTIONS abgefangen wurde, sodass ich meine POST-Anfrage nicht mehr ausführen konnte. Dann ließ ich die Vorabprüfungsanfrage einfach passieren. Fügen Sie dieses Urteil einfach dem Interceptor hinzu
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Wenn der Interceptor auf diese Weise feststellt, dass es sich bei der Anfrage um eine Vorabprüfungsanforderung handelt, leitet er sie direkt weiter und die nächste POST-Anfrage kann ausgeführt werden.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das domänenübergreifende Single-Sign-On-Problem durch die Trennung des Front-Ends und des Back-Ends von vue+springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!