반응형
API Http Request시 보안을 위해 middleware를 사용해 헤더 설정을 해보았다.
Route::group(['prefix'=>'api/v1', 'middleware' => [ApiToken::class]], function(){
Route::GET('test', [tetsController::class,'test']);
});
prefix는 api 요청시 url 앞에 붙는 접두어 이며, 예를 들면 api call시 아래와 같이 요청 해야하며
request시 api/v1이 붙지 않는다면 404 error가 발생할 것이다.
http://localhost/api/v1/test
artisan 명령어로 원하는 middleware 이름을 입력한 후 실행 하면 미들웨어가 생성된다.
php artisan make:middleware middleware_name
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Response;
class ApiToken
{
//URL 요청 시 미들웨어를 거쳐 처리 한 후 결과 값을 넘겨준다.
public function handle(Request $request, Closure $next)
{
/*
HTTP 요청시 TEST KEY값이 설정 되어 있지 않은 경우,
400 code와 에러메시지를 return 해준다.
*/
if(!isset($_SERVER['HTTP_TEST'])){
return Response::json(array('code'=>400,'message'=>'Please set custom header'));
}
/*
설정한 TEST KEY값의 Value값과 요청한 Value값이 일치하지 않은 경우,
406 code와 에러 메시지를 return 해준다.
*/
if($_SERVER['HTTP_MEDICONEX'] != 'TEST KEY 값의 VALUE값'){
return Response::json(array('code'=>406,'message'=>'wrong custom header'));
}
//header key값과 value 값이 일치할 경우 정상적으로 다음 함수가 실행된다.
return $next($request);
}
}
도움이 되셨다면 하트 및 댓글 부탁드립니다♥
반응형
'Framework > Laravel Framework' 카테고리의 다른 글
[Laravel] Broadcast+Redis+Socket io 실시간 echo server 구축 (4) | 2020.12.02 |
---|---|
[Laravel] migration을 이용하여 컬럼 삭제, 수정 하기 (0) | 2020.12.01 |
[Laravel] preg_match 오류 발생 시 (0) | 2020.10.07 |
[Laravel] Migration 실행 시 errno: 150 "Foreign key constraint is incorrectly formed") (0) | 2020.09.16 |
[Laravel] Postman으로 POST 요청 시 page expired Error 문제 (0) | 2020.02.18 |
댓글