JJONG`sFACTORY
반응형

기존에 직장에서 일 할 때에는 한가지 인증 방식을 익혀두고, 빨리빨리 처리 해야 하니 솔직히 기존 것 가져다 쓰기 바빴다..

 

예전에 포스팅 한 Passport 인증 처리 방식으로 주로 사용 했었다.

 

이것도 오늘 알게된 사실인데 sanctum이라는 인증 방식이 또 있더라..

사실 라라벨을 5점대 부터 사용해서 그런지 추가 기능들이 이렇게 많을 줄 몰랐다 ㅎㅎ..

 

둘의 차이점은 다음과 같다.

 

 

목적
Sanctum: SPA(Single Page Application)나 모바일 앱과 같은 클라이언트 측 JavaScript 애플리케이션을 위해 설계된 경량 패키지
Passport: 클라이언트와 서버 사이의 API를 보호하는 데 사용되는 OAuth2 서버


토큰 타입
Sanctum: 토큰 타입으로 쿠키 또는 API 토큰을 사용
Passport: OAuth2 토큰을 사용하여 API를 보호


인증 방식
Sanctum: 쿠키를 사용하여 API에 대한 인증 처리
Passport: OAuth2 프로토콜을 사용하여 인증을 처리


복잡성
Sanctum: 구현 및 유지보수가 상대적으로 간단
Passport: OAuth2 프로토콜을 구현하므로 구현 및 유지보수가 더 복잡

 

 

 

Passport는 여러가지 인증 방식을 지원하는데, 기존에 내가 작성한 방식은 password grant type 이었다.

이외에도

 

authorization code Grant, Implicit Grant, client Credentials Grant 방식등이 있다.

 

Authorization Code Grant
웹 애플리케이션과 같은 클라이언트에서 사용하는 인증 방식
안전한 인증을 보장하기 위해 다단계 인증 프로세스 사용
대규모 애플리케이션에서 사용하기 적합

Implicit Grant
SPA (Single-Page Application)와 같은 클라이언트에서 사용하는 인증 방식
서버간 통신이 필요 없으며, 클라이언트에서 바로 토큰 발급받음
간편하게 구현 가능하지만 보안적인 이슈가 있을 수 있음

Password Grant
사용자가 직접 자격 증명을 제공하는 인증 방식
매우 간단하게 구현 가능하지만, 서버에서 직접 암호를 처리하므로 보안 위협 가능성이 있음
외부에서 접근할 수 없는 사내 애플리케이션 등에 적합

Client Credentials Grant
클라이언트 애플리케이션 자체의 인증을 위한 인증 방식
클라이언트 애플리케이션에서 직접 발급 받으며, 사용자와는 별도로 인증
클라이언트 애플리케이션이 API를 호출할 때 사용

 

 

Authorization Code Grant 방식이 주로 네이버, 카카오 로그인과 같은 방식으로 접해본 방식이다.

 

대충 샘플링..

php
public function callback(Request $request) { $http = new GuzzleHttp\Client; $response = $http->post('http://your-app.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'authorization_code', 'client_id' => 'client-id', 'client_secret' => 'client-secret', 'redirect_uri' => 'http://your-app.com/callback', 'code' => $request->code, ], ]); return json_decode((string) $response->getBody(), true); }
php
Route::get('/authorize', function () { $query = http_build_query([ 'client_id' => 'client-id', 'redirect_uri' => 'http://your-app.com/callback', 'response_type' => 'code', 'scope' => '', ]); return redirect('http://your-app.com/oauth/authorize?'.$query); });

https://laravel.com/docs/10.x/passport#requesting-tokens-converting-authorization-codes-to-access-tokens

 

Laravel - The PHP Framework For Web Artisans

Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.

laravel.com

음.. 참조해서 내일 한번 구축 해봐야겠다

반응형