我正在尝试将我的第一个Web应用程序与Compojure放在一起,并使用Friend进行身份验证/授权。我遇到的问题是我想使用交互式表单工作流,但也可以在用户成功登录后设置自定义会话值。我想我应该创建自己的工作流程,但包装交互式工作流程但不确定如何以及这是否是正确的方法。
答案 0 :(得分:1)
答案很简单,如果身份验证成功,朋友会自动将您的凭据哈希值(减去密码位)添加到会话中。
答案 1 :(得分:1)
这是正确的,如果你想更进一步并在这里添加一个自定义cookie你有一个用法例子:
(defn friend-middleware
"Returns a middleware that enables authentication via Friend."
[handler]
(let [auth-config {
:credential-fn (partial creds/bcrypt-credential-fn db/load-credentials)
:redirect-on-auth? false
:logout-uri "/logout"
:signup-uri "/registration"
:workflows
[;; Note that ordering matters here. Basic first.
(workflows/interactive-form)
]}]
(-> handler
(friend/authenticate auth-config)
(wrap-session {:cookie-attrs {:max-age 3600} :cookie-name "my-site.com" } )
)))
https://gist.github.com/jaimeagudo/8931879
希望有所帮助