2013-12-21 31 views
1

我試圖將Compojure的第一個Web應用程序放在一起,並使用Friend進行身份驗證/授權。我遇到的問題是我想使用交互式表單工作流程,但是一旦用戶成功登錄,它也會設置一個自定義會話值。我想我應該創建自己的工作流程,但包裝交互式表單工作流程,但不知道如何以及如果這是正確的方法。在與Friend,Compojure,Ring成功驗證後添加自定義會話條目

回答

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

希望它有助於

1

答案其實很簡單,如果認證成功,Friend會自動將您的憑證哈希(減去密碼槽)添加到會話中。