· 5 years ago · Mar 10, 2020, 07:38 AM
1(import sh)
2(import json)
3
4(defn verify
5 [secret-key response]
6 (def resp
7 (json/decode
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 (def success (get resp "success" false))
17 (when (and (not success) (resp "error-codes"))
18 (error (string/format "recaptcha error: %j" resp)))
19 success)