6

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

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