2013-09-24 2 views
0

나는 마지막 시간 동안 내 로그인 화면에 "나를 기억해"옵션을 구현하려했지만 성공하지 못했습니다. 누군가 나에게 약간의 도움을 줄 수 있습니까? = D사용자 세션을 다른 세션보다 길게 만들 수 있습니까?

저는 cakephp 2.3.9를 apache2/mysql 5.5/우분투 12.10 서버에서 사용하고 있습니다. 에서 "로그인()"방법은 내 사용자 컨트롤러 내부에, 나는 코드를 추가했습니다 :

if ($this->Auth->login()) { 
if($this->request->data('Usuario.remember')==="1"){ 
    CakeSession::write('Session.timeout', '144000');//100 dias 
} 
return $this->redirect($this->Auth->redirect()); 
} 

나는 그것이 평소보다 특정 사용자 세션 큰 만들 것이라고 기대했다하지만이 적용되었다 것으로 보인다 모든 사용자들. cakephp의 기본 인증 구성 요소를 사용하고 있습니다. 누군가 내가 잘못하고있는 것을 나에게 보여줄 수 있습니까? 어떻게해야합니까? 미리 감사드립니다;]

답변

2

나는 당신이 접근하는 방식으로 이것을 할 수 없다. PHP session timeout length는 session.gc_maxlifetime에 PHP.ini에 정의 된 서버 차원의 설정입니다.

내가 개인적으로 접근하는 방법은 사용중인 세션 처리기를 덮어 쓰는 것이고 PHPSESSID 쿠키를 사용하는 대신 쿠키 만료 시간을 제어 할 수있는 자신의 쿠키를 직접 만드십시오. 이렇게하면 사용자 지정 세션 ID가 유지되어 덮어 쓴 세션 처리기가 사용자를 데리러 사용할 수 있습니다.

CakePHP는 내가 익숙한 것이 아니기 때문에 통합에 너무 많은 조언을 드릴 수는 없습니다.

+0

답장을 보내 주셔서 감사합니다.하지만 그 길은 저를 너무 오래 걸릴 것입니다. 그래서 저는이 튜토리얼을 따르려고합니다 : http://bayesianconspiracy.com/2013/01/cakephp-2-remember-me-feature/ 몇 분 전에 발견되었습니다. 어떤 이유로 든 작동하지 않는다면, 나는 cakephp에 대한 autologin 플러그인을 finnally해볼 것입니다. = D –

+0

이 질문을 한 다음 "너무 오래 걸릴 것"이라고 말하면 실제로 너무 오래 걸릴 것입니다. Ricky가 설명한 방법은 약 5 분이 걸리고 잘 보입니다. – Jelmer

+0

@Jelmer : 그 말을하는 것에 대해 유감스럽게 생각합니다. 나는 무례하기 싫었습니다. 나는 단지 "PHPSESSID"의 의미와 세션 처리기를 덮어 쓰는 방법과 같은 것을 배우는 것이 오랜 시간이 걸릴 것이라고 생각했습니다. 내 문제에 대한 답변을 몇 시간 동안 찾을 수 없기 때문에이 스레드를 만들었습니다. = ( –

관련 문제