2011-05-14 2 views
1

KO3 및 인증 모듈에 대해 망설이고 있습니다. 로그인 작업이 꽤 잘되었지만 페이지를 새로 고칠 때마다 사용자 증가에 대한 로그인 수가 증가한다는 사실을 알고있었습니다.Kohana는 get_user를 로그인으로 인증 하시겠습니까?

나는이 섹션에서 오는 것으로 확신한다.

// Check if logged in 
if ($this->auth->logged_in()) 
{ 
    // Pass user to view 
    $this->view->user = $this->auth->get_user(); // Here? 
} 
else 
{ 
    // Attempt auto login 
    $this->auth->auto_login(); 

    // Check if logged in 
    if ($this->auth->logged_in()) 
    { 
     // Pass user to view 
     $this->view->user = $this->auth->get_user(); 
    } 
} 

이제는 사용자 개체를보기에 전달하는 줄이 확실합니다. 이 줄은 // Here?으로 주석 처리되었습니다.

저는 로그인이 증가하는 이유가 궁금했습니다. 나는 소스를 체크 아웃하고 세션 변수를 읽는 것이 전부입니다.

편집

나는 내가 나에게 설명했다 후이 고정 된 줄 알았는데. 명백하게. 세션이 끝났다고 확신하지는 않지만 GitHub 레포에서 쿠키와 세션 클래스를 사용해 보았습니다.하지만 차이는 없습니다.

어디에서 디버깅을 시작할 것인지 잘 모르겠습니다.

Auth_ORM::logged_in() 
-> Auth_ORM::get_user() 
-> Auth_ORM::auto_login() 
-> Auth_ORM::complete_login() 
-> Model_Auth_User::complete_login() 

그래서 코드가 어떻게 실제적 것 같은이처럼 보이는 : 단일 호출 Auth_ORM하기 때문에 :: logged_in()을 전체 다른 블록, ambigous 사실을 감독하고

+0

나는 이것이 쉬운 질문이 아닐 것이라고 생각합니다. – Olical

+0

세션이 올바르게 작동합니까? 제 생각에는 문제는'auto_login()'호출입니다. – biakaveron

+0

@biakaveron 네, 세션, Kemo가 나에게 틀린 것을 보여준 세션. 'logged_in'은'auto_login'을 호출하여 모든 페이지 뷰에 로그인합니다. – Olical

답변

2

의 원인은 다음과 이 :

// Check if logged in 
if ($this->auth->logged_in()) 
{ 
    // Pass user to view 
    $this->view->user = $this->auth->get_user(); 
} 

그리고 Model_Auth_User::complete_login()은 로그인 횟수가 증가하는 곳입니다.

Auth_ORM::auto_login()은 PEBKAC 또는 세션이 정상이 아니기 때문에 항상 호출되며 사용자 개체를 세션에 저장하는 대신 새 토큰을 설정합니다.

+0

나는'logged_in'이'auto_login'이라는 것을 결코 알지 못했습니다! 그렇게 설명해 주셔서 고맙습니다. 나는 어떤 문서가 있었는지 알았을 것입니다. 어서, [빈 문서] (http://kohanaframework.org/3.0/guide/auth)? 다시 한 번 감사드립니다. 정말 도움이되었습니다. – Olical

+0

나는 그것에 동의하지 않는다. (https://github.com/kohana/auth/blob/3.0%2Fmaster/classes/kohana/auth/orm.php#L192) 볼 수 있듯이'get_user()'메소드는'auto_login()'만 호출합니다 세션에'User' 객체가 없다면 (https://github.com/kohana/auth/blob/3.0%2Fmaster/classes/kohana/auth.php#L87). 첫 번째 페이지 (처음 생성 된 세션)를 열었을 때 true이지만 새로 고침 후 Auth는'User' 개체를 가져옵니다. 그게 내가 왜 세션 작업에 대해 물어 봤는지. – biakaveron

+0

흠 ... 나는 Kemo의 마지막 단락을 놓쳤다 :) – biakaveron

관련 문제