BrowserID 的部分优点在于它对您网站上的基础架构要求非常低,您只需嵌入一个带有一些 javascript 的按钮,然后设置一个回调路由来处理身份验证后数据。我希望能够在 defaultLayout 模板内的所有页面顶部嵌入 BrowserID 登录按钮(然后根据登录状态有条件地显示/隐藏它),但我目前看不到这样做的方法。Auth 子站点通过将其“登录页面”嵌入到 defaultLayout 模板中来工作,但除此之外,它似乎是一个完整的黑盒。
如果可能的话,我真的希望能够避免滚动我自己的 BrowserID 登录处理程序或将用户重定向到一个完全独立的页面,该页面上只有一个 BrowserID 登录按钮。
有没有办法完成我正在尝试做的我只是想念的事情,或者我最好的选择真的是推出我自己的 BrowserID 登录代码?
查看 Yesod.Auth.BrowserId 模块的源代码,看起来我可以执行以下操作:
(apLogin authBrowserId) <not sure what would go here>
为了获得登录小部件,但像这样劫持插件的胆量感觉很脏。