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