authentication - 如何在 defaultLayout 中嵌入 BrowserID 登录按钮

标签 authentication haskell yesod browserid

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/

相关文章:

postgresql - Haskell 持久不同步

java - 简单的 Android 身份验证和之后的请求

iphone - 将 AFIncrementalStore 与 Auth token 一起使用

用于用户登录和身份验证的 Java/Scala 库

node.js - 用于授权从 React Native 应用程序到 Node 服务器的 API 调用的推荐策略是什么?

haskell - 在 Haskell 中通过 getStdGen 使用全局随机生成器

haskell - Haskell 中的 "parse error on input"if-then-else 条件

haskell - 如何在不终止网站的情况下捕获 Yesod 中的异常?

haskell - 二次fmap应用

haskell - 在 map /forM 中使用 updateWhere