下面是基于Yii2框架增加验证码的完整攻略:
第一步:安装 Yii2-验证码扩展
可以通过Yii官方网站提供的包管理器 composer 进行扩展安装,执行以下命令:
composer require 2amigos/yii2-captcha-widget
第二步:配置验证码
在 Yii2 项目的配置文件中增加以下的配置:
'components' => [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
'maxLength' => 4,
'minLength' => 4,
'width' => 150,
'height' => 50,
],
],
第三步:添加验证码输入框和刷新链接
在表单中添加以下的代码:
<?= $form->field($model, 'verifyCode')->widget(\yii\captcha\Captcha::className(), [
'captchaAction' => 'site/captcha'
]) ?>
同时添加刷新验证码链接:
<?= Html::a('刷新验证码', ['site/captcha'], ['class' => 'btn btn-default', 'id' => 'captcha-refresh']) ?>
以上代码中'id' => 'captcha-refresh'为可选,只是为了在JS中给其对象进行调用。
第四步:添加JS
添加以下JS代码,以便点击刷新链接时可以更新验证码:
$(function(){
$('#captcha-refresh').click(function(){
$.ajax({
url:"/site/captcha",
dataType:"json",
cache:false,
success:function(data){
$('#captcha-image').attr('src', data['url']);
$('[name="LoginForm[verifyCode]"]').val(data['hash1']);
}
});
});
});
示例一:使用验证码登录
根据以上步骤配置后,刷新页面后,我们可以看到一个验证码输入框,这时候你需要输入正确的验证码,点击‘登录’按钮,如果正确跳转,错误则只是弹错误提示,不会继续调用登录接口。
示例二:使用验证码重置密码
与使用验证码登录的操作一样,对于需要重置密码时,也可以添加验证码。例如:
<?= $form->field($model, 'verifyCode')->widget(\yii\captcha\Captcha::className(), [
'captchaAction' => 'site/captcha'
]) ?>
<?= Html::a('刷新验证码', ['site/captcha'], ['class' => 'btn btn-default', 'id' => 'captcha-refresh']) ?>
这样在提交表单前,用户需要输入正确的验证码,否则无法提交。
以上就是提供的 Yii2 增加验证码的攻略,希望可以帮到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Yii2增加验证码步骤详解 - Python技术站