PHP 로그 인 폼 제출 CSRF 및 인증 코드 구현

1.양식 을 제출 하고 이 페이지 에 제출 합 니 다.
(1)form 속성 method 는 post 방법 으로 경 로 를 수정 하여 post,get 의 요청 을 받 도록 합 니 다.Route::any('/admin/login','Admin\LoginController@login');(2)LoginController.php
login 방법 을 수정 하여 요청 에 따라 다른 내용 을 되 돌려 줍 니 다.
요청 방법 이 get 이면 로그 인 페이지 로 돌아 갑 니 다.post 로 요청 하면 검증 할 수 있 습 니 다.

use Illuminate\Support\Facades\Input;
public function login()
{
  if($input = Input::all()){
   dd($input);
  }else {
   return view('admin.login');
  }
}
페이지 새로 고침,다음 과 같이 되 돌아 오 면

이것 은 laravel csrf 보호 입 니 다.해결:

올 바른 디 스 플레이:


2.인증번호 가 정확 한 지 확인
(1)LoginController.php,login()방법 수정

public function login()
{
  if($input = Input::all()){
   $code = new \Code();
   $_code = $code->get();
   if(strtoupper($input['code'])!=$_code){
   //strtoupper()               ,           
   //back()          ,  with       ,    session 
     return back()->with('msg','     ');    
   }else{
    echo 'ok';
   }
  }else {
   return view('admin.login');
  }
}
(2)login.blade.php 를 수정 하여 세 션 가 져 오기
이전 사용자 이름 오 류 를 다음 으로 변경 합 니 다.

@if(session('msg'))
<p style="color:red">{{session('msg')}}</p>
@endif
인증:

문제 총화:
1.session 전송 에 필요 한 곳 이 있 으 면 중간 부분 에 길 을 써 야 합 니 다.
예 를 들 어 컨트롤 러 가 back()함 수 를 사용 할 때 return back()->with('msg','인증 코드 오류');경로 가 미들웨어 가 아니라면 session 이 없 으 면 입구 sessionstart()도 소 용 없고 디 버 깅 도 잘 안 돼 요.그리고 csrf 가 생기 지 않 는token

Route::group(['middleware' => ['web']], function () {
//         ,       session
Route::any('/admin/login','Admin\LoginController@login');//      post  ,         
Route::get('/admin/code','Admin\LoginController@code');
Route::get('/admin/getcode','Admin\LoginController@getcode'); 
});
2.제3자 클래스 를 도입 할 때 이 파일 이 session 에 유용 하 다 면 입구 파일 sessionstart(),이것 은 가장 간단 한 해결 방법 입 니 다.그렇지 않 으 면$SESSION
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기