{"id":20904588,"url":"https://github.com/ethercap/yii2-captcha","last_synced_at":"2026-03-05T04:34:21.414Z","repository":{"id":56979652,"uuid":"96866955","full_name":"ethercap/yii2-captcha","owner":"ethercap","description":"yii2 geetest captcha","archived":false,"fork":false,"pushed_at":"2018-05-15T11:00:10.000Z","size":3296,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T11:06:30.912Z","etag":null,"topics":["captcha","geetest","yii","yii2"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethercap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-11T07:57:14.000Z","updated_at":"2025-01-14T04:20:32.000Z","dependencies_parsed_at":"2022-08-21T10:50:17.544Z","dependency_job_id":null,"html_url":"https://github.com/ethercap/yii2-captcha","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethercap%2Fyii2-captcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethercap%2Fyii2-captcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethercap%2Fyii2-captcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethercap%2Fyii2-captcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethercap","download_url":"https://codeload.github.com/ethercap/yii2-captcha/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249752141,"owners_count":21320448,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["captcha","geetest","yii","yii2"],"created_at":"2024-11-18T13:17:55.515Z","updated_at":"2025-10-19T01:06:02.017Z","avatar_url":"https://github.com/ethercap.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yii2-captcha\n\n\nyii2框架的Js验证码，所有的使用方式跟系统自带的yii\\captcha\\Captcha一致。\n\n本代码主要使用极验的服务，并进行yii2封装，使得所有的代码开放极为简单！感谢极验团队提供的免费服务，同时也欢迎购买其付费服务！\n\n\n安装\n------------\n\n推荐的方式是通过composer 进行下载安装[composer](http://getcomposer.org/download/)。\n\n添加入如下两行：\n```\n\"ethercap/yii2-captcha\" : \"@dev\",\n\"gee-team/gt3-php-sdk\": \"@dev\",\n```\n\n到你的`composer.json`文件中的require段。\n\n\n使用\n--------------\n如下为极验js验证码的示例，我们将以登录为例来讲解如何使用该插件：\n\n![image](./docs/img/geetest.gif)\n\n1. 在配置文件中（如common/config/main.php）加入如下的代码：\n```php\nreturn [\n    'components' =\u003e [\n        'geetest' =\u003e [\n            'class' =\u003e 'ethercap\\captcha\\Geetest',\n            'gtId' =\u003e '极验的ID'\n            'gtKey' =\u003e '极验的Key',\n            ],\n        ],\n    ]\n];\n```\n2. 在LoginForm中加入captcha的rules, LoginForm的示例可能如下：\n```php\nclass LoginForm extends Model\n{\n    public $phone;\n    public $smsCaptcha;\n    public $captcha;\n    public $rememberMe = true;\n\n    // ...其它代码\n\n    public rules()\n    {\n        return [\n            // 该规则类似于\\yii\\captcha\\CaptchaValidator,会将post过来的数据自动去极验后台校验\n            ['captcha', '\\ethercap\\captcha\\GtCaptchaValidator'],\n            // ...其它规则\n        ],\n    }\n\n    public function login()\n    {\n        //具体登录代码...\n    }\n\n    public function sendSms()\n    {\n        //具体发送验证码代码...\n    }\n}\n```\n3.在前端页面(如login.php)上加上captcha的展示:\n```php\n    \u003c?=  GtCaptcha::widget([\n        'onSuccess' =\u003e 'function(result){\n            sendSms(); // js验证码成功时的动作，本例中为js发出短信验证码\n        }',\n        'type' =\u003e GtCaptcha::TYPE_BIND, //type为绑定，意思为当点击id为bindTo配置(即sendsms)时，调出极验验证框\n        'bindTo' =\u003e 'sendsms',\n        'name' =\u003e 'LoginForm[captcha]', // input的name\n        'gtOptions' =\u003e [                //gt的显示option\n             'width' =\u003e '50%',\n        ],\n    ]);?\u003e\n```\n如上即为示例中的widget的展示，更多配置请参照本文中下面的配置章节\n\n4.书写相应的controller,该内容跟本包无关，但是需要调用相应LoginForm的validate()方法。\n\n经过如上的配置后，你会发现，当你点击按钮时，会直接掉起js校验，后端和前端的校验均已经OK！\n\n\n配置\n--------------\n本代码仓库对极验的前端控件进行了完美的封装，详情请参考[极验官方文档][1]及[本封装代码说明][2]。\n\n\n\n\n广告\n--------------\n\n我们是一群热爱技术，追求卓越的极客，我们乐于做一些对整个社会都有作用的事情，我们希望通过我们的努力来推动整个社会的创新，如果你也一样，欢迎加入我们（service@ethercap.com）！你也可以通过https://tech.ethercap.com 来了解更多！\n\n\n  [1]: https://docs.geetest.com/install/deploy/client/web\n  [2]: https://github.com/ethercap/yii2-captcha/blob/master/src/geetest/Captcha.php\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethercap%2Fyii2-captcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethercap%2Fyii2-captcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethercap%2Fyii2-captcha/lists"}