Ich benutze Yesod, um ein reines REST-Backend für eine Angular-basierte Anwendung zu erstellen. Diese Anwendung wird separat mit einem CDN gehostet und muss sich mit der Jessod API sowie einigen anderen verbinden. Gibt es eine Möglichkeit, Yesod ein Bearer-Token zu akzeptieren, anstatt eine Cookie-Sitzung zur Authentifizierung zu verwenden?Yesod Sessionless Authentifizierung
6
A
Antwort
12
Wir machen etwas ähnliches in www.fpcomplete.com. Sie können dies tun, indem Sie die maybeAuthId
-Methode in der YesodAuth
Typklasse überschreiben, um nach dem Bearer-Token zu suchen. Für fpcomplete.com suchen wir nach einem Autorisierungsanforderungsheader, der ungefähr so aussieht:
req <- waiRequest
mUserId <-
case lookup "authorization" (requestHeaders req) of
Nothing -> doNormalAuthentication
Just authHeader -> checkAuthHeader