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

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

小云云
풀어 주다: 2023-03-19 09:16:02
원래의
1726명이 탐색했습니다.

최근 친구가 라라벨 인증코드 로그인에 도움을 달라고 해서 좀 조사해봤습니다. 이 글은 주로 Laravel5.2의 Captcha를 사용하여 인증코드(세션피트)를 생성하는 방법을 소개합니다. 필요한 친구들이 참고하면 도움이 될 것입니다.

우선 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();
}
로그인 후 복사

블레이드 템플릿 호출:

<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">
로그인 후 복사

그게 전부라고 생각한다면 당신도 정말 너무 양입니다 단순한. 확인해보면 모든 것이 잘못되었음을 알 수 있습니다.

너무 시큼하고 상큼하지 않나요? 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('captcha');
  if (Session::get('milkcaptcha') == $userInput) {
    //用户输入验证码正确,验证你自己密码用户名
    echo 1;
  } else {
    //用户输入验证码错误
    echo 2;
  }
}
로그인 후 복사

마지막으로 laravel의 공식 문서에 대해 불만을 제기해야 합니다. 이러한 함정은 개발자가 개발이 너무 원활할 것을 걱정하기 때문인 것 같습니다.

관련 권장 사항:

node.js+captchapng+jsonwebtoken을 사용하여 로그인 확인 완료

Captcha 예제에 대한 권장 기사 10개

Captchapng를 사용하여 Nodejs에서 이미지 확인 코드를 생성하는 예제 공유

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

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