2017-08-23 3 views
0

Nach einer Benutzersitzung ist abgelaufen verwenden, wenn eine POST oder PUT Anforderung an jede Steuerung protect_from_forgery hat machen, antwortet der Server mit 403 statt der erwarteten 401 für Benutzer abgemeldet.Rails 403 Antwort auf Sitzung ist abgelaufen, wenn protect_from_forgery

Wenn ein Controller einen 401-Code zurückgibt, leitet der Client den Benutzer zurück zum Anmeldebildschirm.

Ich möchte nicht auf jeder 403 umleiten, ich nicht Benutzer rausgeschmissen werden, wenn ihre Sitzung abgelaufen ist.

Ich habe versucht, googeln und spielte mit den verschiedenen Flaggen wie beschrieben in the doc ohne Glück. Wie kann ich protect_from_forgery 401 zurückgeben, wenn die Sitzung abgelaufen ist?

Antwort

0

ich keine richtige Lösung dafür finden konnte, so habe ich den folgenden Hack:

Auf der Clientseite, wenn der Server einen 403 Fehler zurückgibt, mache ich sofort einen GET Anfrage Endpunkt eine API, gibt 200 zurück, wenn die Sitzung existiert (Benutzer ist angemeldet) und andernfalls 401.

Ich hatte bereits die clientseitige Logik des Umleiten des Benutzers auf die Anmeldeseite auf 401 Fehler.

Wenn jemand eine bessere Lösung hat, die keinen Sekundenruf erfordert, werde ich mich freuen, davon zu hören.

Verwandte Themen