Yii2 登录验证码的实现

验证码相关类目录:vendor\yiisoft\yii2\captcha;

首先在你的 LoginForm 添加代码

    public $verifyCode; //登录验证码

    public function rules()
    {
        return [
            ['verifyCode', 'captcha'],
        ];
    }

在你的控制器的 actions() 方法做如下配置:

以下配置信息可参考:vendor\yiisoft\yii2\captcha\CaptchaAction.php

'captcha' =>  [
                'class' => 'yii\captcha\CaptchaAction',
                'maxLength' => 6, //最大显示个数
                'minLength' => 4,//最少显示个数
                'padding' => 5,//间距
                'height'=>40,//高度
                'width' => 120,  //宽度
                'foreColor'=>0x000000, //字体颜色
                'offset'=>4, //设置字符偏移量 有效果
            ]

在你的登录表单添加:

<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
            'captchaAction'=>'site/captcha',    // 指明控制器,否则会不显示验证码
            'imageOptions'=>['id'=>'captchaimg', 'title'=>'换一个', 'alt'=>'换一个', 'style'=>'cursor:pointer;'],
            'template' => '<div class="row"><div class="col-lg-6">{input}</div><div class="col-lg-3">{image}</div></div>',
        ])->label('验证码') ?>

这样登录验证码就完整实现了

发表评论