파일 업로드 요청할 때 http header 에 laravel_session 이란 키를 가진 쿠키 값을 제출하지 않아서 일 겁니다.
쿠키에 laravel_session 은 확인됩니다.
다른문제인거 같습니다.
CKEditor를 잘 몰라서 완전 엉뚱한 답변일 수 있으니 양해바랍니다.
제 추측에는 자바스크립트에서 HTTP 클라이언트를 만들고 라라벨 서버에 POST 방식의 요청을 할 것 같은데, 자바스크립트가 보내는 HTTP 요청에 Cookie가 잘 달려 있다는 말씀인가요? 서버에서 VerifyCsrfToken 미들웨어에서 토큰 비교를 하기 전에 클라이언트가 제출한 쿠키를 로그로 찍어 보셨나요? 토큰을 검사하는 위치는 아래 링크입니다.
로그로 찍어 본건 아닙니다.(크롬 개발자도구 사용했어요.)
Request Cookies에 laravel_session이 확인되어서요.
좀 이상한 부분이 있는데요.
route() 파라미터 붙이니깐 연결이 &로 연결되는데요
이미지 보면 2번째 파라미터가 _token 이였는데 amp;_token으로 들어가있네요??
(type파라미터를 없애고 token만 파라미터로 연결하면 token에러가 안납니다.)
amp;를 없앨수는 없나요?
CKEDITOR.replace('editor1', { filebrowserImageUploadUrl: '{{ route('fileupload', array('type'=>'Images', '_token' => csrf_token())) }}', }); //소스보기 filebrowserImageUploadUrl: 'site_url?type=Images&_token=xlCHEI53BlfTNHGvWKJQMQIi8knoim1SPrbBFH5N',
CKEDITOR.replace('editor1', { filebrowserImageUploadUrl: '{!! route('fileupload', array('type'=>'Images', '_token' => csrf_token())) !!}', });
자문 자답이지만 위와 같이 처리 하니 되네요.
감사합니다.
ckeditor로 파일 업로드시에 아래와 같은 경로로 token을 같이 보내 주고있습니다.
위 소스실행시 TokenMismatchException 에러가 나는데요.
VerifyCsrfToken 클래스에 $except 에 fileupload를 추가해주면 TokenMismatchException 에러는 안나지만
위 소스에서는 왜 에러가 나는지 잘모르겠습니다.