티스토리 뷰
기존 서비스 인증방식인 session 인증 방식과 토큰 인증방식을 동시에 사용하는 방법.
다른 서비스에서 인증된 사용자일 경우 별도의 인증인 없이 session key
를 통한 인증과 그 외 루트에서 접근하는 경우
토큰을 통한 인증을 동시에 하고자 middleware
를 통해 인증 처리한다.
<?php
namespace App\Http\Middleware;
use Laravel\Passport\Http\Middleware\CheckClientCredentials;
class CheckSomeMiddleware
{
public function handle(Request $request, Closure $next): Response
{
// Bearer Token check middleware
if ($request->bearerToken()) {
return app(CheckClientCredentials::class)->handle($request, fn() => $next($request));
}
// session key check
$cookie = $request->cookie('some session');
if (! $cookie) {
throw ValidationException::withMessages([
'key' => 'Message',
]);
}
// some session auth process...
return $next($request);
}
}
<?php
namespace App\Http\Controllers;
class SomeController extends Controller
{
function __construnct()
{
//make auth marco
Auth::macro('client', fn() => auth('api')->client());
}
public function index()
{
if (auth()->user()) {
// session authorize()
}
if (auth()->client()) {
// token authorize()
}
}
}
'공부합시다 > php' 카테고리의 다른 글
Laravel Exception Test (0) | 2023.11.15 |
---|---|
Laravel 다중 DB 사용시 테스트 트랜잭션 사용하기. (0) | 2023.11.13 |
라라벨 하나의 Router에서 여러개 인증 사용하기 (0) | 2023.09.14 |
COMPOSER 2.x 버전 설치 및 업데이트 (0) | 2023.07.13 |
라라벨 EloquantModel Multiple PrimaryKey 이슈 (0) | 2023.07.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- laravel-kafka
- MySQL
- l5-swagger-response
- session+token authorize
- addMonth
- observer 매개변수 전달하기
- redis
- l5-swagger
- 테스트_다중트랜잭션
- Python
- aaa패턴
- graphql-php
- password-manager
- php-laravel
- 정규식
- bitwarden-cli
- Laravel
- laravel-test
- POP3
- 정의
- django
- 라라벨
- eloquent-observer
- 메일
- addMonthWithoutOverflow
- vim
- exception-test
- php
- 자바스크립트
- graphql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함