From fab7c2a194287d1beb90449b15a510549b68fa02 Mon Sep 17 00:00:00 2001 From: cwlowder Date: Mon, 5 Jul 2021 23:48:50 -0500 Subject: [PATCH] Add checks for remoteip and sitekey --- hcaptcha.go | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/hcaptcha.go b/hcaptcha.go index 4c14402..d09c309 100644 --- a/hcaptcha.go +++ b/hcaptcha.go @@ -35,6 +35,12 @@ type Client struct { // and without additional information. FailureHandler http.Handler + // Optional checks for siteverify + // The user's IP address. + RemoteIP string + // The sitekey you expect to see. + SiteKey string + secret string } @@ -121,12 +127,22 @@ func (c *Client) VerifyToken(tkn string) (response Response) { return } - resp, err := c.HTTPClient.PostForm(apiURL, - url.Values{ - "secret": {c.secret}, - "response": {tkn}, - }, - ) + values := url.Values{ + "secret": {c.secret}, + "response": {tkn}, + } + + // Add remoteIP if set + if c.RemoteIP != "" { + values.Add("remoteip", c.RemoteIP) + } + + // Add sitekey if set + if c.SiteKey != "" { + values.Add("sitekey", c.SiteKey) + } + + resp, err := c.HTTPClient.PostForm(apiURL, values) if err != nil { response.ErrorCodes = append(response.ErrorCodes, err.Error()) return