我正在使用Yesod为基于Angular的应用程序构建纯REST后端。此应用程序将与CDN分开托管,并且需要连接到Yesod api以及其他一些应用程序。有没有办法让Yesod接受Bearer令牌而不是使用cookie会话进行身份验证?
答案 0 :(得分:13)
我们在www.fpcomplete.com上做了类似的事情。您可以通过覆盖maybeAuthId
类型类中的YesodAuth
方法来检查Bearer令牌。对于fpcomplete.com,我们检查授权请求标题,类似于:
req <- waiRequest
mUserId <-
case lookup "authorization" (requestHeaders req) of
Nothing -> doNormalAuthentication
Just authHeader -> checkAuthHeader