[Laravel] 419 에러 대처법

[Laravel] 419 에러 대처법 updated_at: 2024-03-06 17:20

419 Page Expired

가끔 419 에러가 발생하면 난감한 경우가 많다
419에러는 csrf 토큰값과 현재 토큰값이 일치하지 않는 경우에 종종 발생한다. 일반적인 처리 법은 아래와 같다.

check 1

meta에 csrf-token 이 존재하는가>

<meta name="csrf-token" content="{{ csrf_token() }}">

check 2

form 안에 _token 이 존재하고 위의 check 1번과 동일한가?

<form action="" method="post">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
.........

혹은

<form action="" method="post">
  @csrf
.........

check 2 번과 같은 경우가 가장 실수하기 쉬운 부분입니다.

check 3

check 3-1 .env

.env 확인

SESSION_DRIVER=file
SESSION_DOMAIN= // 기본값은 null
SESSION_SECURE_COOKIE=false // 기본적으로 session.php 에서 false로 설정되어 있음

check 3-2

clear cache

php artisan cache:clear

check 3-3

퍼미션 확인

chmod -R 755 storage/framework/sessions // 혹은 775

위와 같은 내용은 일반적인 커뮤니티에도 많이 언급되는 내용이다.
저의 경우는 서버도메인을 많이 사용하는데 서브도메인과 다른 메인 혹은 서브 도메인과의 충돌이 자주 발생하였습니다.

check 4

// .env
SESSION_DOMAIN=sub.domain.com // 사용하는 서브 도메인을 확실하게 정의 (일반적인 경우는 정의하지 않아도 정상 작동하여야 한다.)

check 5

이렇게 했는데도 되지 않는다...
현재 테스트중인 브라우저에서 쿠키를 삭제하시기 바랍니다. 아마 cookie 에 설정된 도메인과 기존 다른 서브도메인과의 충돌로 인해 되지 않는 경우 입니다.

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글