PHP 로그 인 폼 제출 CSRF 및 인증 코드 구현
(1)form 속성 method 는 post 방법 으로 경 로 를 수정 하여 post,get 의 요청 을 받 도록 합 니 다.
Route::any('/admin/login','Admin\LoginController@login');
(2)LoginController.phplogin 방법 을 수정 하여 요청 에 따라 다른 내용 을 되 돌려 줍 니 다.
요청 방법 이 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이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.