c98e728891 | ||
---|---|---|
app/controllers/ru_captcha | ||
config | ||
lib | ||
spec | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
README.md | ||
Rakefile | ||
rucaptcha.gemspec |
README.md
RuCaptcha
This is a Captcha gem for Rails Applications. It runs an ImageMagick command to draw Captcha image - so it has NO performance issues or memory leak issues.
There is NO: RMagick
Idea by: https://ruby-china.org/topics/20558#reply4
Requirements
- ImageMagick
Example
Usage
Put rucaptcha in your Gemfile
:
gem 'rucaptcha'
Create config/initializers/rucaptcha.rb
RuCaptcha.configure do
# Number of chars, default: 4
self.len = 4
# Image width, default: 180
self.width = 180
# Image height, default: 48
self.height = 48
end
Edit config/routes.rb
, add the following code:
Rails.application.routes.draw do
...
mount RuCaptcha::Engine => "/rucaptcha"
...
end
Controller app/controller/account_controller.rb
class AccountController < ApplicationController
def create
@user = User.new(params[:user])
if verify_rucaptcha?(@user) && @user.save
redirect_to root_path, notice: 'Sign up successed.'
else
render 'account/new'
end
end
end
View app/views/account/new.html.erb
<form>
...
<div class="form-group">
<%= rucaptcha_input_tag(class: 'form-control', placeholder: 'Input Captcha') %>
<%= rucaptcha_image_tag(alt: 'Captcha') %>
</div>
...
</form>
Test skip captcha validation
describe 'sign up and login', type: :feature do
before do
allow_any_instance_of(ActionController::Base).to receive(:verify_rucaptcha?).and_return(true)
end
it { ... }
end
TODO
- Use rtesseract to test OCR.