Sto usando Yesod per creare un backend puramente REST per un'applicazione basata su Angular. Questa applicazione sarà ospitata separatamente con un CDN e dovrà connettersi all'apet Yesod e ad alcuni altri. C'è un modo per fare sì che Yesod accetti un token Bearer invece di usare una sessione di cookie per l'autenticazione?Yesod Sessionless Authentication
6
A
risposta
12
Facciamo qualcosa di simile su www.fpcomplete.com. È possibile farlo sovrascrivendo il metodo maybeAuthId
nella classe di caratteri YesodAuth
per verificare il token Bearer. Per fpcomplete.com, controlliamo l'intestazione di una richiesta di autorizzazione, che assomiglia a qualcosa:
req <- waiRequest
mUserId <-
case lookup "authorization" (requestHeaders req) of
Nothing -> doNormalAuthentication
Just authHeader -> checkAuthHeader