최근 로컬로 개발하는 것보다는 내 laravel 응용 프로그램을 프로덕션 서버로 옮겼습니다. 그러나 이후 나는 계속 Illuminate \ Session \ TokenMismatchException
으로 계속 실행되므로 사이트에 로그인 할 수 없었습니다.cPanel, 쿠키가 설정되지 않은 상태에서 Laravel TokenMismatchException
로컬 서버에서 프로덕션 서버로 이식했을 때 문제가 발생하지 않았습니다.
나는 토큰을 들여다 보았고 전혀 일치하지 않는다.
Route::filter('csrf', function()
{
// Check ajax requests for token validity via the header.
// app.js has the code to grab form tokens and put it in
// a header, well validate it here if its a post AJAX
if (Request::ajax() && Request::getMethod() == 'POST')
{
if (Session::getToken() != Request::header('X-CSRF-Token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
} else {
if (Request::getMethod() == 'POST' && Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
}
});
오류가 나는 Session::token()
그래서 내 질문은
Input::get('_token)
에, 토큰의 차이에 관해서 내가 놓치고 있음을 노골적으로 분명 뭔가가 비교하려고 할 때 발생 다음과 같이 내 코드는 로컬 서버에서 프로덕션 서버의 로컬 서버로?
이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.
~ 추가 정보 ~ 내가 세션이 지속되지 유사한 문제가 발견 한 다른 소스에서
. 이미 Laravel 4.1이므로 lifetime
및 expire_on_close
은 기본값 인 120
및 false
으로 이미 설정되어 있습니다. 나는 또한 동일한 결과로 세션 드라이버를/database/cookie 파일로 변경하려고 시도했다.
~ 또 다른 업데이트 ~
좋아, 어딘가 조금 더 가까이, 브라우저 자원으로보고, 내 로컬 서버에 쿠키가 설정되어 laravel_session 그러나 내 웹 서버에이 전혀 표시되지 않습니다. 이것이 이것과 관련 있다고 생각합니다.
이 두 번째입니다. 나는이 똑같은 문제가있어서 그 원인을 알 수 없다. 'Session :: token()'과'Input :: get ('_ token')'은 종종 일치하지 않습니다. 나는 그 고침을보고 싶다. 나는 아직도 나 자신을 찾고있다. – lookitsatravis
다른 세션 변수가 지속됩니까? 나는 그것이 귀하의 세션 쿠키 경로 또는 도메인에 문제가 될 수 있다고 생각하거나 보안 플래그 (https 전용 세션)를 설정했을 수도 있습니다. – judereid
다른 값은 계속 유지되며 쿠키 경로/도메인은 내 로컬 서버에서 작동하는 기본값입니다. 보안 플래그는 false로 설정됩니다. – roadkill247