Haskell YesODAuth:无会话身份验证插件流
我正在尝试使用Yesod作为移动应用程序的API后端,并选择使用承载JWTs来处理身份验证和授权。我已经重写了Haskell YesODAuth:无会话身份验证插件流,haskell,authentication,yesod,jwt,session-less,Haskell,Authentication,Yesod,Jwt,Session Less,我正在尝试使用Yesod作为移动应用程序的API后端,并选择使用承载JWTs来处理身份验证和授权。我已经重写了maybeAuthId,因此Yesod.Auth可以很好地接受(或拒绝)JWTs。但是,我不知道如何让auth插件将令牌返回到客户端,而不是它在客户端会话中存储AuthId并重定向客户端的默认行为。是否需要改变默认的auth插件流,让它将令牌返回给客户端 更新:我在文档和源代码中翻了一番,现在对auth插件的工作方式有了更好的了解:auth插件在内部调用setCredsRedirect来
maybeAuthId
,因此Yesod.Auth可以很好地接受(或拒绝)JWTs。但是,我不知道如何让auth插件将令牌返回到客户端,而不是它在客户端会话中存储AuthId并重定向客户端的默认行为。是否需要改变默认的auth插件流,让它将令牌返回给客户端
更新:我在文档和源代码中翻了一番,现在对auth插件的工作方式有了更好的了解:auth插件在内部调用
setCredsRedirect
来设置会话并执行回调onLogin
。使用onLogin
的问题是Creds
无法从该函数内部访问。我唯一的另一个解决方案是编辑authenticate
函数以响应JWT。leeks,你找到过这个问题的解决方案吗?