· 5 years ago · Feb 26, 2020, 03:22 AM
1(import sh)
2(import json)
3
4(defn verify
5 [secret-key response]
6 (def resp
7 (->
8 (sh/$$
9 ["curl"
10 "--max-time" "10"
11 "-X" "POST"
12 "https://www.google.com/recaptcha/api/siteverify"
13 "-F" (string "secret=" secret-key]))
14 "-F" (string "response=" response)]
15 :redirects [[stderr :discard]]) # XXX report as part of error?
16 (json/decode)))
17 (def success (get resp "success" false))
18 (when (and (not success) (resp "error-codes"))
19 (error (printf "recaptcha error: %j" resp)))
20 success)