使用easy_captcha生成登录验证码 ruby on rails

 

(1)新增gem to Gemfile ,then  bundle install

gem 'easy_captcha', git: 'https://github.com/phatworx/easy_captcha.git'
gem 'rmagick'

(2)after bundle execute

rails g easy_captcha:install

运行完这句话,可以看到app/controllers/application_controller.rb 和 config/routes.rb 的变化

class ApplicationController < ActionController::Base
+ # reset captcha code after each request for security
+ after_filter :reset_last_captcha_code!

 

config/routes.rb 里多了一句

Cms::Application.routes.draw do
+ captcha_route

(3)修改用户登录文件app/controllers/sessions_controller.rb

   def create
     if user = CmsUser.authenticate(params[:username], params[:password])
       session[:user_id] = user.id
-      redirect_to root_path
+      if captcha_valid? params[:captcha]
+        redirect_to root_path
+      else
+        flash.now[:error] = "验证码错误"
+        render :new
+      end
     else
       flash.now[:error] = "用户名或密码错误"
       render :new

 (4)修改对应的view,app/views/sessions/new.html.erb

             <%= form_tag login_path, method: :post, class: "form-signin" do %>
               <input type="text" name="username" class="form-control" placeholder="Email" required autofocus>
               <input type="password" name="password" class="form-control" placeholder="Password" required>
+              <p>请输入验证码 <%= text_field_tag :captcha %></p>
+              <p><%= captcha_tag %></p>
               <button class="btn btn-lg btn-primary btn-block" type="submit">登录</button>
               <% if flash[:error] %>
                 <p class="notice" style="color:red;"><%= flash[:error] %></p>
<% end %>
<% end %>

 

转载于:https://www.cnblogs.com/iwangzheng/p/4519761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值