Cara Memasang Helper Google Recaptcha di Ruby on Rails

Fika Ridaul Maulayya 23 Juni 2018

Cara Memasang Helper Google Recaptcha di Ruby on Rails

Google reCAPTCHA merupakah sebuah layanan captcha mempermudah para developer untuk mengamankan / menghindari dari serangan spam pada website yang dibangun.

ReCAPTCHA adalah sebuah layanan captcha gratis yang membantu proses digitalisasi buku, koran dan siaran radio pada masa lalu. Captcha biasanya digunakan untuk menghindari serangan bot dan spam pada suatu website .

Pada tutorial kali ini kita akan mencoba menggunakan helper reCaptcha di framework Ruby on Rails, berikut langkah-langkahnya.

Menambah Gem

Tambahkan gem berikut ini di file Gem aplikasi teman-teman:

gem "recaptcha", require: "recaptcha/rails"

Setelah itu, ketik bundle install

Setelah selesai, silahkan buat file baru di folder config/initializers, dengan namarecaptcha.rb, dan masukkan kode berikut ini:

# config/initializers/recaptcha.rb
Recaptcha.configure do |config|
  config.site_key   = '6Lc6BAAAAAAAAChqRbQZcn_yyyyyyyyyyyyyyyyy'
  config.secret_key = '6Lc6BAAAAAAAAKN3DRm6VA_xxxxxxxxxxxxxxxxx'
  # Uncomment the following line if you are using a proxy server:
  # config.proxy = 'http://myproxy.com.au:8080'
end

Silahkan daftar api dari google reCaptcha di sini https://www.google.com/recaptcha/admin.

CATATAN : gunakan localhost atau 127.0.0.1 jika menggunakan localhost:3000

Kemudian ganti value config.site_key dan config.screet_key yang ada di file config/initializers/recaptcha.rb dengan api yang sudah di daftarkan di google reCaptcha diatas.

Cara Menggunakan Gem

Tambahkan kode berikut ini di view yang ingin diberi reCaptcha:

<%= form_for @foo do |f| %>
  # ... other tags
  <%= recaptcha_tags %>
  # ... other tags
<% end %>

Kemudian untuk verifikasi reCaptcha-nya di controller bisa seperti berikut ini:

# app/controllers/users_controller.rb
@user = User.new(params[:user].permit(:name))
if verify_recaptcha(model: @user) && @user.save
  redirect_to @user
else
  render 'new'
end

Untuk custom message bisa di tambah di dalam parameter verify_recaptcha() menjadi seperti ini misalnya:

# app/controllers/users_controller.rb
@user = User.new(params[:user].permit(:name))
if verify_recaptcha(model: @user, :message=> 'ini adalah custom message error') && @user.save
  redirect_to @user
else
  render 'new'
end 

INFO : untuk teman-teman yang ingin belajar membuat aplikasi rails dengan crud manual bisa download aplikasi yang sudah jadi di :

https://github.com/maulayyacyber/rails-manual-crud

Jangan lupa fork dan star-nya ya ;)