如何使用compojure的朋友?

时间:2013-07-06 19:32:58

标签: authentication clojure compojure

我对clojure很新,我正在尝试将一个身份验证系统添加到一个计算机应用程序中,并且我正在使用cemerick.friend。

所有路由都运行良好,但我永远无法登录,即使在内存数据库中使用虚拟数据库(如果你可以调用它)。

我认为,这个问题出在cemerick.friend.credentials/bcrypt-credential-fn,这是永远不会验证我的凭据。

以下是相关代码的要点:https://gist.github.com/zamith/5940965

如何解决这个问题的任何帮助都会很好。

感谢。

1 个答案:

答案 0 :(得分:4)

您想使用workflows/interactive-form当前指定的workflows/interactive-login-redirect

后一个功能的目的是作为默认:login-failure-handler。它的作用是在登录尝试失败后执行重定向;它当然不会尝试登录用户。

您还需要从(resp/redirect "/signup")路由中的friend/authenticated表单正文中删除"/dashboard",因为它无条件地将登录用户重定向到注册页面。 (重定向发生实际上证明了用户正在进行身份验证,否则将无法评估friend/authenticated的正文,并且代码中没有其他内容可能导致重定向到"/signup"。)< / p>

通过这两项更改,该应用适用于我。