2015-01-31 8 views
6

Ich möchte Sitzungen für Headless-API-Endpunkte deaktivieren, aber ich muss sie eingeschaltet lassen, da dieser Dienst auch Benutzeranmeldungen behandelt.Wie können Sitzungen in Yesod für bestimmte URLs oder Unterwebsites deaktiviert werden?

Allerdings makeSessionBackend hat keinen Zugriff auf Handler Zeug oder sogar aktuelle URI, wie isAuthorizedSource tut.

Es scheint mir, dass ich Client Session Backend-Code heben und es mit Wrappers bestreuen sollte, bis ich mindestens Textpfad von diesem WAI Request bekommen kann.

Gibt es nicht eine bessere Möglichkeit, irgendjemanden zu sagen, der einige Routen wie StaticR ignoriert?

Antwort

2

Alle Ihre Punkte können durch Überschreiben der makeSessionBackend-Methode in der Yesod-Typklasse geändert werden. So etwas wie

instance Yesod App where 
    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend expireTime filepath 
     where expireTime = 24 * 60 
+0

Ich auch erwartet, dass so etwas funktioniert, aber keine Möglichkeit gefunden, auf verarbeitete aktuelle Route zuzugreifen. – wiz

Verwandte Themen