Bei Verwendung des folgenden JavaScript-Codes ist das Authentifizierungstoken zuerst mit der Methode firebase.auth() abgerufen. Anschließend wird eine POST-Anfrage an das FastAPI-Backend gestellt. Wenn das Token gültig ist, wird eine Umleitungsantwort zurückgegeben. Der Benutzer wird jedoch nicht tatsächlich umgeleitet und die Originalseite bleibt geladen.
<code class="javascript">function loginGoogle() { var provider = new firebase.auth.GoogleAuthProvider(); firebase.auth() .signInWithPopup(provider) .then((result) => { // ... }) .catch((error) => { // Handle Errors here. // ... }); firebase.auth().currentUser.getIdToken(true).then((idToken) => { // ... const headers = new Headers({ 'x-auth-token': idToken }); const request = new Request('http://localhost:8000/login', { method: 'POST', headers: headers }); fetch(request) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error)); }); }</code>
Standardmäßig legt die fetch()-Methode in JavaScript die fest Umleitungsmodus folgen, was bedeutet, dass der Benutzer nicht auf eine neue Seite umgeleitet wird, sondern die Umleitungsantwort stattdessen automatisch im Hintergrund verarbeitet wird. Wenn Sie die Umleitung manuell durchführen möchten, können Sie den Umleitungsmodus auf „Manuell“ festlegen und dann die Eigenschaften „Response.redirected“ und „Response.url“ verwenden, um die Umleitungs-URL abzurufen und den Benutzer selbst mithilfe von „window.location.href“ oder „window“ zu dieser URL umzuleiten .location.replace().
Anstatt eine RedirectResponse vom Server zurückzugeben, können Sie eine normale JSON-Antwort mit der URL zurückgeben im JSON-Objekt enthalten. Überprüfen Sie auf der Clientseite, ob das vom Server zurückgegebene JSON-Objekt den URL-Schlüssel enthält. Wenn ja, rufen Sie dessen Wert ab und leiten Sie den Benutzer mithilfe von window.location.href oder window.location.replace() zu dieser URL weiter.