captcha

package
v4.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

Captcha

This package provides services to add a captcha to your web applications. The following CAPTCHA services are supported.

  • Google ReCAPTCHA v2

Examples

Google ReCAPTCHA v2
import "github.com/app-nerds/kit4/captcha"

captchaService := captcha.NewGoogleRecaptchaService(captcha.GoogleRecaptchaServiceConfig{
  CaptchaSecret: "secret",
})

if verifyCaptchaResponse, err := captchaService.VerifyCaptcha(captchaTokenFromFrontEnd, ipAddress); err != nil {
   // error
}

if !verifyCaptchaResponse.Success {
  // No bueno!
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCaptchaFailed = fmt.Errorf("captcha failed")

Functions

This section is empty.

Types

type CaptchaService

type CaptchaService interface {
	VerifyCaptcha(token string, ip string) (VerifyCaptchaResponse, error)
}

type GoogleRecaptchaService

type GoogleRecaptchaService struct {
	CaptchaSecret string
	HttpClient    restclient.IHTTPClient
}

func NewGoogleRecaptchaService

func NewGoogleRecaptchaService(config GoogleRecaptchaServiceConfig) *GoogleRecaptchaService

NewGoogleRecaptchaService creates a new Captcha service that uses Google Recaptcha

func (*GoogleRecaptchaService) VerifyCaptcha

func (s *GoogleRecaptchaService) VerifyCaptcha(token string, ip string) (VerifyCaptchaResponse, error)

VerifyCaptcha verifies the captcha request with the provider and returns a response

type GoogleRecaptchaServiceConfig

type GoogleRecaptchaServiceConfig struct {
	CaptchaSecret string
}

type VerifyCaptchaRequest

type VerifyCaptchaRequest struct {
	Secret   string `json:"secret"`
	Token    string `json:"response"`
	RemoteIP string `json:"remoteip"`
}

func (VerifyCaptchaRequest) ToJSON

func (r VerifyCaptchaRequest) ToJSON() []byte

func (VerifyCaptchaRequest) ToQueryString

func (r VerifyCaptchaRequest) ToQueryString() []byte

type VerifyCaptchaResponse

type VerifyCaptchaResponse struct {
	Success            bool      `json:"success"`
	ChallengeTimestamp time.Time `json:"challenge_ts"`
	HostName           string    `json:"hostname"`
	ErrorCodes         []string  `json:"error-codes"`
}

func NewVerifyCaptchaResponseFromReader

func NewVerifyCaptchaResponseFromReader(reader io.Reader) (VerifyCaptchaResponse, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL