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