In web applications, Captcha is used to prevent spam/bot from getting into our applications, inbox or databases. It ensures that web application using by a real human. Here, we are going to implement Googles reCAPTCHA service in our rails application by using recaptcha gem.
Step1: Add captcha gem into Gemfile
gem "recaptcha", require: "recaptcha/rails"
Step2: Run bundler
bundle install
Step3: Overridden the create method of devise registration controller
class User::RegistrationsController < Devise::RegistrationsController
def create
#build the resource
build_resource(sign_up_params)
#Verifying Captcha
if verify_recaptcha(model: resource)
super
else
render 'new'
end
end
#
# Other line of Codes
end
Step4: To implement Googles reCAPTCHA we need a public and private key by registering on Google recaptcha account(URL: "https://www.google.com/recaptcha/admin")
Step5: Now configure recaptcha like below...
Path: config/initializer/recaptcha.rb
Recaptcha.configure do |config|
config.public_key = 'your public key'
config.private_key = 'private key'
end
Step6: Modify the routes.rb like below...
Path: /config/routes.rb
devise_for :users, :controllers => {:registrations => "user/registrations"}
Step7: Display captcha in registration form
Path: app/views/devise/registrations/new
<%= recaptcha_tags %>
0 Comment(s)