1
0
Fork 0

Add reCAPTCHA

This commit is contained in:
Alex Kotov 2018-12-14 07:13:49 +05:00
parent 1557415c6c
commit 7abcaec210
No known key found for this signature in database
GPG Key ID: 4E831250F47DE154
8 changed files with 48 additions and 9 deletions

View File

@ -110,6 +110,9 @@ gem 'telegram-bot', '~> 0.14'
# Virtus types for Telegram Bot API.
gem 'telegram-bot-types', '~> 0.6'
# Helpers for the reCAPTCHA API.
gem 'recaptcha', '~> 4.13'
group :development, :test do
# factory_bot provides a framework and DSL for defining and using factories.
gem 'factory_bot_rails', '~> 4.10'

View File

@ -296,6 +296,8 @@ GEM
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
recaptcha (4.13.1)
json
redis (4.0.3)
regexp_parser (1.3.0)
responders (2.4.0)
@ -466,6 +468,7 @@ DEPENDENCIES
rails (~> 5.2.1)
rails-erd (~> 1.5)
rails-i18n (~> 5.1)
recaptcha (~> 4.13)
redis (~> 4.0)
rest-client (~> 2.0)
rolify (~> 5.2)

View File

@ -4,6 +4,8 @@ class Users::SessionsController < Devise::SessionsController
skip_after_action :verify_authorized
skip_after_action :verify_policy_scoped
prepend_before_action :check_captcha, only: :create
# before_action :configure_sign_in_params, only: [:create]
# GET /resource/sign_in
@ -12,19 +14,26 @@ class Users::SessionsController < Devise::SessionsController
# end
# POST /resource/sign_in
# def create
# super
# end
def create
super
end
# DELETE /resource/sign_out
# def destroy
# super
# end
def destroy
super
end
# protected
protected
# If you have extra params to permit, append them to the sanitizer.
# def configure_sign_in_params
# devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute])
# end
def check_captcha
return if verify_recaptcha
self.resource = resource_class.new sign_in_params
render :new
end
end

View File

@ -5,7 +5,7 @@ module ApplicationHelper
case flash_type
when 'success'
'alert-success'
when 'error'
when 'error', 'recaptcha_error'
'alert-danger'
when 'alert'
'alert-warning'

View File

@ -13,6 +13,10 @@
input_html: { autocomplete: 'current-password' } %>
<%= f.input :remember_me, as: :boolean if devise_mapping.rememberable? %>
<div class="mb-3">
<%= recaptcha_tags %>
</div>
</div>
<div class="form-actions">

View File

@ -1 +1 @@
XpjR8j+qN8qPyleTAB7MJb+CYhXulqQwWpNW9O6XEqgveOqMui3gG3kjcYF1SGag3Lyb37JE4vKWgsAQbPh6YYRvVKhr/UEAnpOlll56DLyOl62lu0U038lbQ/LgSHmzX0TDzCw6HlXzugytzLLJWFZzarh3giA03JpjwJi9p0uGWCAzyt9oZaUxxgrxcJI0N3S88OiDeCJ+ndlmc8GXeBFArs86O3jHui2P/drTHhSDIRjiPKu2XOTK+iqC9qZVL+FclZj+Rwi6Bw/Ob1TsXGwuSr8s3v6AxdZoHZhbJcr+3eMtwRecxuNI+f/LrZdd1oRpfUgXlVGJVeXMyZohbSCxDo6XWMlvaJF8NZxtyLmACCrxW3OwghZijyJK1YvZOOu2hnGDNiqaauy/ayopF8z4pYnnHr2Uty8XNtCyWCbj4/BE59FHDkO97O+0Gk6ivjGoTylyqvXeaeoFixGYyZhRwXm7aBdZQVf1tQdKJ5f2aRzLxym76MCUdk0DZeBbu1xWW0ORcnPFZihgYwq4EVo1c0UZg+wdiPM2VsqauvSuSWVpEA37yarlSxPUiwHsep/RXQcypAhQGgJpS+Y83354h4d39mnNKVVY7Dp6MPmolAmMmuOuSg8IPgbm1t0WIUvZzDuOwDcaOw+vskjVuG1UXmYDowiLgiw7q13RrNPKNzBmxqmTzYNgX0R0NbRnbyCYPUeL4bHT0X6gykYGRTSU96osr3jHdU6OWpZKUoz4qci7XxzxpWRLeeyNt2m9FF72oNdBmy8XBtI/2+N7xGfbQ7HIBb1qJcR0vALp6y7Oe+VMaokLrbmUOmgSOKcBDO75zCPV1cT2V6TOWyeT15ZDA9xJVeyn3v27a+tAb8VH0dmEdhP9qKGUPwPynwe8bt97FHnF0cWLgPQ6iPRKynC3jDKa9Q/UGISlUMnM9w6rJYgS/RfP6+CJuHGEUUtOgDaGWoeLfb3Zf16xrX6YElMR62V48vC9+N36cjxRT2HAi07Fm+dSpmXME8TX0fHDkbOqjHUnL1UUNDtS/zQ3zB0JnhHH3kCBVqEPqGcrlwZ41SItjlKOmf5QueooMIDkt+nrlqq8MH8H7X1PwiffoKGOKxGSe5av4Wht7oTfLXwaJul/Klv+rzqoxXlE1MJad32uIqxHM+OEsmkIZV7Mp8+2P0FA1WG8oNKFGR9+pDJIB5HNNt4lZiBbpRBrogtOr1+cNsPUIIqurca1rHY3OV2+RWb5TOuTbb8lX1mAfRBpoFV8ubkwqZrgAcY2--NOzfEQFtoa3MHjU8--B7qrAiWb5qaFoUtH3M90Fg==
C5sE9RF/MHXPhzxvn6bbbEnMZcjzjliu7nlWM4qpI02K9z4WVQc2tU5i9arLmv5RyowQLtnjTouX4qzXTJDMmdiE5A0iv2RcD7ZTPeQ+fc5pvGOjTRTrqi2UdNZjuEtlaklanUDd0g95I5ZV16bwm1Sua2Gb5rlrjWjVCrB3DuTw9qyu4rrnIDbkyJrpOEf8MvcVCl1KJsAE9eYg3xeaaGMDb4bIURAP3hG8rsqnk1yNjW4zmPvnUzoxlENUEv3LhT3/HeHI4kUg7M53PcfPo2Pee0czOq24nndJ/eYzgpwvqHCIFd37rFgtUlE8RKkDIMRuJK6in//TjepO+J8pV/tWiQEBWfPH1dUKQvswN94PZx9rDwf3rK3ZTysTALhf23HY+peQDdE+wV1ZFKaklbFR1hW/T+bxrXu2u3x8yUpf8l39vi/tcl5ntsAYi4es6lnIcht2LUw0YIfCPwSQ8Ozc6AxuA5z1+LLGNTlEaIls7Pl55xJd5OqErcZiR+nUxGQU8JdSxv+5QDswWGHaWlCppz3nNiT3t372q1IpY/Mr5I5BZq+3omYNfdqRhUWCxJeh4v9XfbnuxN37Br8lheMi+u9fT6S2zqCt+ucESqqTjNVHXMyFoZy+bvO9UuUvpz+72DOihlTo6lG1oJDFXhvCDMTlg4e5UbxjAGDQjNGhnqlvGlX+1jkw3aFxh7l9yXxmzlSdEmZHj3m43wqFwOalK3IvlJPtL8VT+B2+qcGjGrvJl4tYPqqnUCqalXLRig3erLxyBouF7UiGsptsEFrxqwrjUbz7+11+8dp7wzBKjNauHb572yXf4BdG7rAa4ivppf2XAiJiRMf4+Ks0/hlUIe8Lisxy0nPoGKTyvp9Y2rrN/XDl09DMFcAlZR16bBZrX0L1UGDH1B/rR9JWrVetM3XR1g1G4lkAz5OmrhkpFLBp9X8OCRObHLnhcnw8k7jGCWiHEBnH1Ez9g51mS+CJ0nKwpKHO5zq1nxPrb6J8AC6DzZWNf9oKZOPXZXq05fjxIL+judVvNAW39bC924N7nD1b+w+BXjduoZUFITmYjDVenNpmToUgsqlso7/SIIHicniI2jM8oeQXRMbgRJEf787x/kgUvC7BAZWk2ChqhuyKQfYSUV3019bGmlSSIKpFQLSaBDxJyKoS/RGaZcAqQx5z5t/nos7uOHuRAiNKH/cJfVrfN5WFAMMAsG9l7WtiVNjqJs3Ha/5OMgCzNoDFxVPiKVUTm3NHvFNZbXsobDxLF5HbUUhh2m3lK/lKatHSwfbAU/ca00HZ48RibOqFmruK+20X+8py6L7R1jOgTVaveSAsbJHlSrSKZRR3k24JGNqK3+wD3A1r--IE3qv5uCCzLe4X1g--cuMLzKt35nIvWXL8LzRrLQ==

View File

@ -0,0 +1,11 @@
# frozen_string_literal: true
# Be sure to restart your server when you modify this file.
Rails.application.settings(:recaptcha).presence.try do |settings|
Recaptcha.configure do |config|
config.site_key = settings[:site_key]
config.secret_key = settings[:secret_key]
config.skip_verify_env = %w[development test cucumber]
end
end

View File

@ -0,0 +1,9 @@
default: &default
site_key: 6LdgbIEUAAAAANMCKgv_eVOViQt4oQHlBpVxqguZ
secret_key: <%= Rails.application.credentials.recaptcha_secret_key %>
development:
<<: *default
production:
<<: *default