2013-08-27 3 views
2

무엇이 원인이 될지 모르겠습니다. 하지만 내 프로젝트는 개발 중에 잘 진행되었습니다.AppFog/Laravel 3에서 세션이 유지되지 않음

하지만 AppFog에 업로드했을 때 갑자기 내 세션/Auth()가 발생하지 않습니다.

인증이 작동합니다. 그래서 사용자는 ... 로그인 할 수 있으며, 자신의 프로필 페이지 ... 에 그들이 물건을 업데이트 할 수 있습니다 거기에서 리디렉션됩니다

그래서 인증은() 분명히 자신의 세션을 유지하고 있지만 wierdly 그들은 다른 곳을 클릭하면 사이트에서 자신의 프로필에서 ..... 갑자기 그들의 세션이 손실됩니다. 다시 프로필로 돌아가려면 다시 로그인해야합니다.

왜 이것이 생산 단계에서 발생하지만 개발 단계에서는 발생하지 않는 것입니까? 코드베이스는 완전히 동일합니다. 로컬/프로덕션 데이터베이스 설정을 사용하는 경우에만 차이가 있습니다. 그 외 모든 것은 완전히 동일합니다.

어떤 생각이 원인 일 수 있습니까 ?? 일반적으로 나는 php.ini 등을 점검 할 것입니다. 그러나 appfog에서는 깊은 관리 도구에 액세스 할 수 있을지 의심 스럽습니다.

세션 기반 인증에서 Redis/Database 인증으로 전환해야합니까? 다른 사람이 Laravel 또는 YII와 함께 AppFog에서이 문제를 발견하게됩니까? 데이터베이스 세션 스토리지로, 기본에서 전환

UPDATE

로그인에 여러 항목의 이상한 오류를 생산했다. 물론 Auth() 시도가 실패하게 만듭니다. 세션 테이블의 id 열에서 auto_increment를 제거하여이 문제를 해결했습니다. 이것은 기본 설정에서 이전에 작동했던 하나의 응용 프로그램을 수정했습니다.

문제의 다른 앱이 작동하지 않습니다. 적어도 로그인 시도시 세션 테이블에 1 개의 항목 만 작성하고 있지만, 어떤 이유로 그것이 해당 테이블과 상호 참조하기 위해 로그인 쿠키를 작성하지 않습니다. 내가 가지고있는 작업 응용 프로그램의 리소스에서 크롬 콘솔

, ...

laravel_session -> 6 작동 따라서 왜 세션 테이블에 ID 6을 참조하면된다

. 비 작동 응용 프로그램에서

그러나 ..... 나는

laravel_session이 -> 41g1D4390Sd223s 등 등

어떤까지 내가 말할 수있는, 아무것도 참조하지 않습니다 ....

이것에 대한 통찰력 ???

+0

저는 Appfog에서 같은 문제에 직면 해 있습니다. 저는 Spring을 사용합니다. 나는 조사 중이며 Appfog의 HttpSession에 문제가있는 것 같고 브라우저를 체크인하면 모든 요청에서'sessionId' 매개 변수가 변경되므로 요청이 두 번 이상 지속되지 않습니다. – maqjav

답변

0

나는 laravel3과 laravel4 모두 비슷한 문제가있었습니다.

(권장하지 않음하지만) 해결 방법이며, 수동으로 세션에 아무것도 넣어 후

사용 Session::save().

내가 그것을 발견

Session::put('foo','bar'); 
Session::save(); 

때때로 laravel는 Session::save() 전화를 실패하고 예외 나 오류가 발생하지 않습니다.

+0

Auth() 클래스를 사용하므로 laravel/auth.php를 열고 Store 함수를 Session :: save(); 토큰을 저장 한 후 Didnt work : ( – KyleK

+0

이것에 대한 다른 이상한 점은 Laravel3을 사용하는 appfog에 다른 앱이 있는데, 정확히 동일한 설정, 다른 데이터베이스 만 사용한다는 것입니다. 그리고 ..... 괜찮습니다. – KyleK

+0

.. .. laravel의 세션은 내가보기에 결함이 있습니다. 위의 해결 된 광산. 귀하의 경우가 아니라면, dev 콘솔을 열고, 세션 ID를 확인하십시오. 존재하는지 확인하십시오. 사용중인 저장 공간이 있는지 확인하고 거기에 존재하는지 확인하십시오 .... 장시간의 고통스러운 디버깅 사전에 문제가 해결되지 않으면 (그리고 코어 파일을 수정하지 않으려는 경우) 타사 보안 세션으로 이동하십시오 _phpseclib_ 같은 라이브러리 – itachi

1

AppFog가 영구 데이터 저장소가없는 클라우드 기반 서비스이기 때문일 수 있습니다. 기본적으로 Laravel은 세션에 디스크 저장소를 사용합니다. 세션을 데이터베이스에 저장하는 것으로 전환하면 올바르게 유지 관리해야합니다.

+0

나는 이것에 동의 할 수 있지만, 왜 다른 laravel3 앱이 똑같은 변경되지 않은 설정을 사용하여 AppFog에서 완벽하게 잘 돌아가는 것일까 요? – KyleK

+0

하지만 .... 지금은 세션의 데이터베이스 스토리지를 시도 중입니다 ... 그리고 그 악화 ..... 로그인하기 전에 반면, 적어도 나를 로그인 할 것이지만, 세션을 보류 못해. 이제 데이터베이스를 세션 드라이버로 사용하면 전혀 로그인하지 않겠지 만 ... 이상한 일은 로그인 할 때마다 세션 테이블에 실제로 항목을 만드는 것입니다. 그러나 모든 시도에 대해 4 개의 새로운 항목을 만드는 것! ??. laravel 코어 파일을 살펴보면, Im은 왜, 심지어 그것이 어떻게 가능할지를 완전히 이해하기가 어려웠습니다. – KyleK

+0

이제 두 앱 모두 앱 포그가 깨져 보입니다. 작업중인 데이터베이스 세션을 사용해 보았는데 작동하지 않았으며 원래 상태로 되 돌렸을 때 현재도 깨졌습니다. 로그인 할 수는 있지만 세션은 유지되지 않을 것이며 ..... 데이터베이스 세션을 사용하는 경우 로그인이되지 않지만 세션 테이블에 4-5 개의 항목이 생성됩니다. 어 ...! 내 머리를 찢어 내 임 : – KyleK