寻求适配Redmine 5.0.5版本的Google reCAPTCHA插件
适配Redmine 5.0.5的Google reCAPTCHA解决方案
一、修改旧插件适配Redmine 5.0.5
如果之前使用的旧reCAPTCHA插件仅因依赖或钩子不兼容无法使用,可手动修改代码完成适配:
- 更新依赖与版本声明:打开插件的
Gemfile,将旧的reCAPTCHA相关依赖替换为最新版的recaptchagem;同时在init.rb中更新Redmine版本兼容要求,把requires_redmine :version_or_higher => '3.4.6'改为requires_redmine :version_or_higher => '5.0.0' - 替换弃用页面钩子:Redmine 5.x调整了部分页面钩子,找到插件中注册登录/注册页面钩子的代码,将旧钩子(如
:login_form_bottom)替换为5.x支持的:account_login_bottom或:account_register_bottom - 升级API调用逻辑:若插件使用了已弃用的reCAPTCHA v1 API,全部替换为v2或v3的API调用方式,确保验证请求地址、参数符合Google当前规范
二、无插件原生集成方案
不想修改插件的话,可直接在Redmine中手动集成reCAPTCHA:
- 添加密钥配置:在Redmine的
config/configuration.yml中添加reCAPTCHA密钥:recaptcha_site_key: "你的site key" recaptcha_secret_key: "你的secret key" - 修改登录视图:编辑
app/views/account/login.html.erb,在登录表单内添加reCAPTCHA的HTML代码(以v2为例):<div class="g-recaptcha" data-sitekey="<%= Setting['recaptcha_site_key'] %>"></div> - 添加验证逻辑:在
app/controllers/account_controller.rb的login方法中,加入reCAPTCHA验证步骤:unless verify_recaptcha flash[:error] = "reCAPTCHA验证失败,请重试" redirect_to login_path return end - 引入官方脚本:在Redmine全局布局文件
app/views/layouts/base.html.erb的<head>标签中添加Google的reCAPTCHA脚本:<script src="https://www.google.com/recaptcha/api.js" async defer></script>
内容的提问来源于stack exchange,提问作者Rabiya J
相关产品推荐
相关产品推荐

