Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ResponseContextKey is the default request's context key that response of a hcaptcha request is kept. ResponseContextKey interface{} = "hcaptcha" // DefaultFailureHandler is the default HTTP handler that is fired on hcaptcha failures. See `Client.FailureHandler`. DefaultFailureHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { http.Error(w, http.StatusText(http.StatusTooManyRequests), http.StatusTooManyRequests) }) // PostMaxMemory is the max memory for a form, defaults to 32MB PostMaxMemory int64 = 32 << 20 )
var HTMLForm = `` /* 201-byte string literal not displayed */
HTMLForm is the default HTML form for clients. It's totally optional, use your own code for the best possible result depending on your web application. See `ParseForm` and `RenderForm` for more.
Functions ¶
func ParseForm ¶
ParseForm parses the `HTMLForm` with the necessary parameters and returns its result for render.
func RenderForm ¶
func RenderForm(w http.ResponseWriter, dataSiteKey, postActionRelativePath string) (int, error)
RenderForm writes the `HTMLForm` to "w" response writer. See `_examples/basic/register_form.html` example for a custom form instead.
Types ¶
type Client ¶
type Client struct {
HTTPClient *http.Client
// FailureHandler if specified, fired when user does not complete hcaptcha successfully.
// Failure and error codes information are kept as `Response` type
// at the Request's Context key of "hcaptcha".
//
// Defaults to a handler that writes a status code of 429 (Too Many Requests)
// 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
// contains filtered or unexported fields
}
Client represents the hcaptcha client. It contains the underline HTTPClient which can be modified before API calls.
func New ¶
New accepts a hpcatcha secret key and returns a new hcaptcha HTTP Client.
Instructions at: https://docs.hcaptcha.com/.
See its `Handler` and `SiteVerify` for details.
func (*Client) Handler ¶
Handler is the HTTP route middleware featured hcaptcha validation. It calls the `SiteVerify` method and fires the "next" when user completed the hcaptcha successfully,
otherwise it calls the Client's `FailureHandler`.
The hcaptcha's `Response` (which contains any `ErrorCodes`) is saved on the Request's Context (see `GetResponseFromContext`).
func (*Client) HandlerFunc ¶
func (c *Client) HandlerFunc(next func(http.ResponseWriter, *http.Request)) http.HandlerFunc
HandlerFunc same as `Handler` but it accepts and returns a type of `http.HandlerFunc` instead.
func (*Client) SiteVerify ¶
SiteVerify accepts a "r" Request and a secret key (https://dashboard.hcaptcha.com/settings). It returns the hcaptcha's `Response`. The `response.Success` reports whether the validation passed. Any errors are passed through the `response.ErrorCodes` field.
func (*Client) VerifyToken ¶
VerifyToken accepts a token and a secret key (https://dashboard.hcaptcha.com/settings). It returns the hcaptcha's `Response`. The `response.Success` reports whether the validation passed. Any errors are passed through the `response.ErrorCodes` field. Same as SiteVerify except token is provided by caller instead of being extracted from HTTP request