Middleware 액션 설정

이정음·2022년 4월 15일
0

Laravel

목록 보기
2/2

문제

Middleware('auth:api')로 들어가있는 route들에 대해, Middleware에서 걸러졌을 때에 Exception처리를 해야한다. 

/* routes/api.php */
Route::middleware('auth:api')->group(function(){
	/* Routes.. */
});

 (현재 auth처리는 laravel passport를 통해 하고 있다.)

해결

Middleware/Authenticate.php 수정

Authenticate.php에는 예외처리가 되었을 때, 어디로 redirect되어야 할지 정의하고 있다.

기존에는 return route('login')으로 되어있어서 미들웨어에서 걸러졌을 때, 자꾸 login route를 찾았던 것이다.

그래서 아래와 같이 route를 수정해주었다.

이 때, 주의해야 할 점!

이 함수에서 바로 response를 보내지는 못한다. 

처음 수정시 return response()->json(); 형식으로 넣었는데,

ErrorException: Header may not contain more than a single header, new line detected in file /../vendor/symfony/http-foundation/Response.php on line 359

이런 오류가 났다..ㅠㅠㅠㅠㅠ

열심히 구글링을 해보니까, 여기에는 response형식의 return이 안된다고 보아서 다른 route로 바꾸고,

해당 route에 대한 액션을 설정해주니 끝!


Middleware를 건드려 본적은 처음이었다.

구글링 없이 그냥 미들웨어 폴더에 Authenticate.php를 만지다 보니 해결되었다..! 

생각보다 간단하게 해결 된 것 같아서 쀼듯 (●'◡'●)

profile
코드먹는 하마

0개의 댓글