> 백엔드 개발 > PHP 튜토리얼 > Laravel5.2는 Captcha를 사용하여 로그인 구현을 위한 인증 코드를 생성합니다.

Laravel5.2는 Captcha를 사용하여 로그인 구현을 위한 인증 코드를 생성합니다.

不言
풀어 주다: 2023-03-31 22:06:02
원래의
1835명이 탐색했습니다.

이 글은 주로 Laravel5.2가 Captcha를 사용하여 인증코드(세션피트)를 생성하는 방법을 소개하고 있습니다. 필요하신 분들은 참고하시면 됩니다

최근 친구가 라라벨 인증코드 로그인에 도움을 달라고 해서 좀 조사해봤습니다. . (laravel 사용법을 잊어버릴 뻔했습니다.)

우선 laravel을 설치하기 위해 아래 세부 사항을 살펴볼 필요가 없습니다. 제 버전은 5.2.45입니다. (참고: laravel 5.2.6 이상에서는 미들웨어가 자동으로 로드될 수 있습니다.) , 꽤 중요합니다.

설치가 완료된 후 작곡가를 사용하여 Captcha를 로드해야 합니다. 구체적인 방법은 "gregwar/captcha":"1.*" 코드 줄을 작곡가.json의 필수 배열에 추가하는 것입니다. 그런 다음 프로젝트의 루트 디렉터리에서 cmd를 사용하여 작곡가 업데이트 코드 줄을 실행합니다. 이 경우 라이브러리나 미들웨어가 설치되어 있어도 마찬가지입니다. 그러면 자유롭게 코드를 작성할 수 있습니다.

php: (아래 특정 라우팅에 대해 너무 자세히 설명하지 않고 키 코드만 작성합니다.)

public function captcha($tmp)
{  //生成验证码图片的Builder对象,配置相应属性
  $builder = new CaptchaBuilder;
  //可以设置图片宽高及字体
  $builder->build($width = 100, $height = 40, $font = null);
  //获取验证码的内容
  $phrase = $builder->getPhrase();
  //把内容存入session
  Session::flash('milkcaptcha', $phrase);
  //生成图片
  header("Cache-Control: no-cache, must-revalidate");
  header('Content-Type: image/jpeg');
  $builder->output();
}
로그인 후 복사

blade 템플릿 호출:

<img src="{{url(&#39;/captcha/1&#39;)}}" alt="" onclick="this.src=&#39;{{url(&#39;/captcha&#39;)}}/&#39;+Math.random()" width="100" height="40" border="0">
로그인 후 복사

이것이 end 그렇지 않다면 당신은 정말 너무 양이 많고 너무 단순합니다. 확인해보면 모든 것이 잘못되었음을 알 수 있습니다.

너무 시큼하고 상큼하지 않나요? laravel5.2에서는 모든 세션이 컨트롤러와 메소드를 교차할 수 없기 때문에 기본적으로 세션은 미들웨어를 통해 전달되어야 합니다. 걱정하지 마십시오. 다음 방법이 해결책입니다. 현재 제가 알고 있는 해결책은 두 가지인데, 하나는 미들웨어를 직접 만들어서 모든 세션을 저장하는 것인데, 조금 번거롭습니다. 다음으로 laravelappHttpKernel.php에 다음 코드를 $middleware에 추가해 보겠습니다. 파일에:

\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Cookie\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
로그인 후 복사

그러면 안심하고 세션을 사용하실 수 있습니다. 아래의 인증 코드를 확인하는 방법입니다.

public function login_data()
{
  $userInput = \Request::get(&#39;captcha&#39;);
  if (Session::get(&#39;milkcaptcha&#39;) == $userInput) {
    //用户输入验证码正确,验证你自己密码用户名
    echo 1;
  } else {
    //用户输入验证码错误
    echo 2;
  }
}
로그인 후 복사

마지막으로 laravel의 공식 문서에 대해 불만을 제기해야합니다. 이러한 함정은 개발자가 개발을 걱정하기 때문입니다. 너무 매끄럽다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장사항:

Laravel의 날짜 및 시간 처리 패키지 Carbon 사용에 대해

php artisan 사용에 대해 laravel 5.1에서 마이그레이션

로그가 처리되지 않는 문제를 해결하는 방법 Laravel

으로 작성하세요

위 내용은 Laravel5.2는 Captcha를 사용하여 로그인 구현을 위한 인증 코드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿