최근 친구가 라라벨 인증코드 로그인에 도움을 달라고 해서 좀 조사해봤습니다. 이 글은 주로 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('/captcha/1')}}" alt="" onclick="this.src='{{url('/captcha')}}/'+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을 사용하여 로그인 확인 완료
Captchapng를 사용하여 Nodejs에서 이미지 확인 코드를 생성하는 예제 공유
위 내용은 Laravel5.2는 Captcha를 사용하여 로그인 방법을 구현하기 위한 인증 코드를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!