안녕하세요 sudo php artisan serve --host 0.0.0.0 --port 80
을 사용하는 원격 서버에 내 Laravel 앱을 배포했지만 로그인 할 때 TokenMismatchException이 표시됩니다. 응용 프로그램은 내 로컬 환경에서 잘 작동하고 내 로그인 폼은 {{ csrf_field() }}
Laravel 장인이 원격 서버에서 서비스를 제공합니다
답변
이 시도 포함 않았다
을 내가 미들웨어에게를 $ this->을 추가 ('인증')를 있으리라 믿고있어; 컨트롤러의 생성자 내부에서 인증 작동을 얻으십시오. {!!를 사용하는 경우 로그인/등록 양식 아래에 상단에 다음을 추가하십시오. 양식 :: someElement!} :
{!! csrf_field() !!}
아니면 폼 내부에 입력 태그를 사용하는 경우, 단지 바로 태그 다음에이 추가 : 모든
<input type="hidden" name="_token" value="{{ csrf_token() }}">
첫째, 프로덕션 모드에서 php artisan serve
명령을 사용하면 안됩니다. 당신은 단지 larvel의 public/index.php 파일에 http://or.net/
과 같은 baseUrl을 지적해야합니다. 모든 종속성을 가진 laravel 응용 프로그램을 부트 스트랩합니다. 공유 서버에서 laravel 호스팅에 대한 자세한 내용은 this CW answer을 참조하십시오.
그리고 CSRF 토큰 문제에 대한 해결책은 @sujalPatel이 응답합니다. 당신은
{!! csrf_field() !!}
하지 {{ csrf_field() }}
위법은 아니지만 내 양식에 {{csrf_field()}}가 있고 로컬 개발 환경에서 작동한다고 언급했습니다. 그냥 원격 서버에서 작동을 멈 춥니 다. –
어떤 범죄를 추가하지해야하지만 난 내 양식에 포함 된 언급했다 {{csrf_field()}}와 로컬 디바이스 환경에서 작동합니다. 그냥 원격 서버에서 작동을 멈 춥니 다. –