Facebook SDK hat einen Fehler zurückgegeben: Der "state"-Parameter von URL und Session stimmen nicht überein

Diese Fehlermeldung tritt auf, wenn das SDK verwendet wird, um eine OAuth-Anfrage bei Facebook zu stellen und der "State"-Parameter in der URL nicht mit dem im Benutzersitzung gespeicherten "State"-Wert übereinstimmt.

Hier ist ein Beispiel dafür, wie dieser Fehler auftreten kann:

  1. Ein Benutzer klickt auf einen Button auf Ihrer Website, der ihn zur Facebook OAuth-URL umleitet, die einen "State"-Parameter enthält.

  2. Der Benutzer wird aufgefordert, sich bei Facebook anzumelden und Ihre App die Zugriff auf ihre Informationen zu autorisieren.

  3. Nachdem der Benutzer Ihre App autorisiert hat, leitet Facebook ihn mit einem "Code" und einem "State"-Parameter in der URL zurück zu Ihrer Website weiter.

  4. Das SDK überprüft den "State"-Parameter in der URL gegen den im Benutzersitzung gespeicherten "State"-Wert. Wenn sie nicht übereinstimmen, wird die Fehlermeldung "Cross-Site-Request-Forgery-Überprüfung fehlgeschlagen. Der "State"-Parameter aus der URL und der Sitzung stimmen nicht überein" angezeigt.

Um dieses Problem zu beheben, stellen Sie sicher, dass der "State"-Parameter beim ersten Besuch Ihrer Website korrekt im Benutzersitzung gespeichert wird und dass er nicht verändert wird. Überprüfen Sie auch, dass der richtige "State"-Parameter an Facebook übergeben wird, wenn der Benutzer zur OAuth-URL umgeleitet wird und dass er bei der Rückleitung des Benutzers zu Ihrer Website korrekt überprüft wird.