2

我正在尝试为 Yesod 使用身份验证插件:yesod-auth-account。它提供了一个默认表单来使用,我希望向它添加一些引导程序/模板特定的样式。如果我使用自定义表单,我将不得不重写很多方法。

这尤其紧迫,因为我想在不同的显示上下文中重用表单(在导航栏中,在注册表单旁边等)。

有任何想法吗?

4

1 回答 1

4

You could wrap default email AuthPlugin:

authEmailCustom :: YesodAuthEmail m => AuthPlugin m
authEmailCustom =
    AuthPlugin "email" (apDispatch authEmail) $ \tm ->
        [whamlet|
<form method="post" action="@{tm loginR}">
    <input type="email" name="email">
    <input type="password" name="password">
    <input type="submit" value="submit">
    <a href="@{tm registerR}">I don't have an account
|]

Just substitute your styled form. Then use it instead of default one:

instance YesodAuth App where
    ...
    authPlugins _ = [authEmailCustom]

Hope this helps.

于 2013-09-19T14:34:10.617 回答