【发布时间】:2015-02-17 07:31:05
【问题描述】:
在我的中间件中,我正在检查:session 的值以查看用户是否已登录。
如果设置了:session 的值,效果会很好。虽然,我不确定检查 :session 是否绑定的最佳方法。
(defn logged-in-verify
[ring-handler]
(fn new-ring-handler
[request]
;;verify that the scrypt hash of email and timestamp matches.
(let [session (:session request)
email (:ph-auth-email session)
token (:ph-auth-token session)
timestamp (:ph-auth-timestamp session)]
(if (scryptgen/check (str email timestamp) token)
(do
;; return response from wrapped handler
(ring-handler request))
;; return error response
{:status 400, :body "Please sign in."}))))
由于我不检查 :session 是否已绑定,因此如果未设置,使用此中间件的内容将返回 NullPointerException。最好的方法是什么?
【问题讨论】:
标签: clojure nullpointerexception ring