feat: Add hCaptcha for public forms (#4017)

- added hCaptcha based verification for chatwoot signups

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Pranav Raj S
2022-02-18 20:02:50 +05:30
committed by GitHub
parent 80d83b401c
commit ea44a32758
13 changed files with 123 additions and 7 deletions

25
lib/chatwoot_captcha.rb Normal file
View File

@@ -0,0 +1,25 @@
class ChatwootCaptcha
def initialize(client_response)
@client_response = client_response
@server_key = GlobalConfigService.load('HCAPTCHA_SERVER_KEY', '')
end
def valid?
return true if @server_key.blank?
return false if @client_response.blank?
validate_client_response?
end
def validate_client_response?
response = HTTParty.post('https://hcaptcha.com/siteverify',
body: {
response: @client_response,
secret: @server_key
})
return unless response.success?
response.parsed_response['success']
end
end