저는 원래 yii2 프레임워크의 인증 코드가 매우 포괄적이라고 생각했습니다. Baidu와 Google을 사용해 보았지만 대부분의 튜토리얼이 흩어져 있고 불완전했습니다.
사이트/로그인 양식에 로그인하려면 인증 코드를 추가해야 한다고 가정합니다.
1. siteController 컨트롤러의 액션 메소드에 captcha 설정을 추가합니다.
public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'maxLength' => 4, 'minLength' => 4 ], ]; }
위에서는 간단히 인증 자릿수를 설정했습니다. 코드에는 어떤 구성 항목이 있는지 궁금해하는 친구들이 있는데, Vendoryiisoftyii2captcha 파일을 보면 인증코드 배경색, 글꼴 파일, 기타 설정 등을 확인할 수 있습니다.
2. SiteController가 구성을 계속합니다.
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['login', 'error', 'captcha'], 'allow' => true, ], ], ]; }
접근 규칙 작업에 보안 문자 방식 접근성을 추가합니다.
3. 뷰 레이어를 살펴보고 인증코드 입력을 추가해 보겠습니다.
use yii\captcha\Captcha; <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'template' => '<div><div>{image}</div><div>{input}</div></div>', ]) ?>
4. 이것이 충분하지 않다면 인증 코드에 대한 인증 규칙도 추가해야 합니다.
여기서 사용하는 것 따라서 LoginForm 파일을 수정하세요
class LoginForm extends Model { //...... public $verifyCode; public function rules() { return [ //...... ['verifyCode', 'captcha'], ]; } public function attributeLabels() { return [ 'verifyCode' => '', //验证码的名称,根据个人喜好设定 ]; } } //定义了verifyCode属性 //rules规则添加了验证 //label中定义了其显示名称
5. 4단계에서는 기본적으로 인증코드를 설정하면 정상적으로 표시됩니다. 배경에 rbac 권한 제어가 설정되어 있는 경우 구성에 accss로 /site/captcha 접근성을 추가해야 합니다.
6. 효과만 보세요.
7. 페이지를 새로고침해도 인증코드가 왜 새로고침되지 않느냐고 묻는 학생들이 있었습니다. 저는 개인적으로 새로고침해도 상관없다고 생각합니다. 잘못된 인증코드를 입력한 경우 코드페이지를 새로고침하면 인증코드가 갱신됩니다. 인증 코드를 따르기 위해 페이지를 새로 고쳐야 하는 경우 간단한 방법을 시도해 보세요.
$('验证码对象').click();
즉, 페이지 새로고침 시 인증코드를 다시 클릭하면 강제로 새로고침 됩니다.
위는 편집자가 소개한 Yii2의 인증코드 추가 방법입니다. 많은 분들께 도움이 되었으면 좋겠습니다!
위 내용은 yii의 내용과 인증코드를 포함하여 Yii2에 인증코드를 추가하는 자세한 단계를 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.