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

jacklove
풀어 주다: 2023-04-02 10:22:01
원래의
1846명이 탐색했습니다.

이 글에서는 주로 Laravel5.2를 사용하여 보안코드(세션피트)를 생성하는 방법을 소개하고 있습니다. 필요한 친구는

을 참고하세요. 최근 한 친구가 라라벨 인증코드에 대해 도움을 요청했습니다. 로그인하고 약간의 조사를 했습니다. (laravel 사용법을 까먹을 뻔 했습니다.)

우선 laravel을 설치하기 위해 아래의 세부사항으로 들어갈 필요가 없습니다. (참고: 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">
로그인 후 복사

그렇게 생각한다면 정말 너무 단순합니다. . 확인해보면 모든 것이 잘못되었음을 알 수 있습니다.

너무 시큼하고 상큼하지 않나요? 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의 공식 문서에 대해 불만을 토로하고 있습니다. 함정 미리 설명하지 않으면 개발자들이 너무 순조롭게 개발하지 않을까 걱정이 될 것 같아요.

Summary

위는 Captcha를 사용하여 확인 코드를 생성하는 Laravel5.2에 대한 편집자의 소개입니다. 로그인(세션피트)을 실현하시어, 모든 분들께 도움이 되었으면 좋겠습니다. 궁금한 점이 있으시면 메시지를 남겨주시면 편집자가 시간 맞춰 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다!

당신이 관심을 가질 만한 기사:

PHP 정렬 알고리즘 시리즈의 버킷 정렬에 대한 자세한 설명# 🎜 🎜#

PHP 정렬 알고리즘 병합 정렬 시리즈에 대한 자세한 설명_php 기술


PHP 정렬 알고리즘 시리즈 직접 선택 정렬에 대한 자세한 설명#


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

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