2014-07-14 3 views
2

최근 로컬로 개발하는 것보다는 내 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이므로 lifetimeexpire_on_close은 기본값 인 120false으로 이미 설정되어 있습니다. 나는 또한 동일한 결과로 세션 드라이버를/database/cookie 파일로 변경하려고 시도했다.

~ 또 다른 업데이트 ~

좋아, 어딘가 조금 더 가까이, 브라우저 자원으로보고, 내 로컬 서버에 쿠키가 설정되어 laravel_session 그러나 내 웹 서버에이 전혀 표시되지 않습니다. 이것이 이것과 관련 있다고 생각합니다.

+0

이 두 번째입니다. 나는이 똑같은 문제가있어서 그 원인을 알 수 없다. 'Session :: token()'과'Input :: get ('_ token')'은 종종 일치하지 않습니다. 나는 그 고침을보고 싶다. 나는 아직도 나 자신을 찾고있다. – lookitsatravis

+0

다른 세션 변수가 지속됩니까? 나는 그것이 귀하의 세션 쿠키 경로 또는 도메인에 문제가 될 수 있다고 생각하거나 보안 플래그 (https 전용 세션)를 설정했을 수도 있습니다. – judereid

+0

다른 값은 계속 유지되며 쿠키 경로/도메인은 내 로컬 서버에서 작동하는 기본값입니다. 보안 플래그는 false로 설정됩니다. – roadkill247

답변

0

해결할 수 없습니다. 결국 나는 cPanel의 사용과 관련이 있다는 것을 알았지 만, cPanel없이 다른 호스팅 제공 업체를 사용하자마자 문제가 발생하지 않았습니다.

관련 문제