我试图通过在标题中设置X-CSRF-Token 来实现Ring-Anti-Forgery库.
由于我使用的是静态html文件,因此我发现内置的打嗝帮助器(它在表单中设置令牌)是无用的.
这是我第一次尝试使用Clojure进行Web开发,所以我猜我完全错过了那些有经验的人应该明白的东西.
README状态的说明:
中间件还在X-CSRF-Token和X-XSRF-Token头字段中查找令牌.可以使用:read-token选项进一步自定义此行为:
(defn get-custom-token [request]
(get-in request [:headers "x-forgery-token"]))
(def app
(-> handler
(wrap-anti-forgery {:read-token get-custom-token})
(wrap-session)))
Run Code Online (Sandbox Code Playgroud)
我已经将上面的内容添加到handler.clj而没有任何成功.
project.clj
(defproject hooktale "0.0.1"
:description "Hooktale iOS App Website"
:url "http://www.hooktale.com"
:repositories {"sonartype releases" "https://oss.sonatype.org/content/repositories/releases/"}
:source-paths ["src/clj" "src/cljs"]
:dependencies [[org.clojure/clojure "1.5.1"]
[org.clojure/clojurescript "0.0-2080"]
[org.clojure/java.jdbc "0.3.0-beta2"]
[compojure "1.1.6"]
[com.mchange/c3p0 "0.9.5-pre5"]
[org.postgresql/postgresql "9.3-1100-jdbc4"]
[ring-anti-forgery "0.3.0"]]
:plugins [[lein-ring "0.8.8"]
[lein-cljsbuild "1.0.1-SNAPSHOT"]]
:ring {:handler hooktale.handler/app}
:profiles {:dev {:plugins [[javax.servlet/servlet-api "2.5"]
[ring-mock "0.1.5"]]
:cljsbuild {:builds [{:source-paths ["src/cljs"]
:compiler {:optimizations …Run Code Online (Sandbox Code Playgroud)