【发布时间】:2021-10-11 22:36:59
【问题描述】:
发生的情况是即使验证码验证失败,用户也可以登录这是我关于用户的路线:
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations',
passwords: 'users/passwords'
}
resources :users
这是我的相关 app/controllers/users/sessions_controller.rb 代码:
prepend_before_action :check_captcha, only: [:create]
def check_captcha
return if !verify_recaptcha # verify_recaptcha(action: 'login') for v3
self.resource = resource_class.new sign_in_params
respond_with_navigational(resource) do
flash.discard(:recaptcha_error) # We need to discard flash to avoid showing it on the next page reload
render :new
end
end
我的 config/rechaptcha.rb 包含环境检查并根据环境传递不同的密钥:
Recaptcha.configure do |config|
if Rails.env.development?
config.site_key = '6L..Bg'
config.secret_key = '6L..WG'
elsif Rails.env.production?
config.site_key = '6L...b'
config.secret_key = '6L.gy'
end
end
【问题讨论】:
标签: ruby-on-rails devise recaptcha