로그인하는 동안 사용자의 계정이 활성화되어 있는지 확인하고 싶습니다. 그러나 케이크의 인증 컴포넌트는 제어 방법을 알지 못하는 방식으로 로그인을 처리합니다. Cake는 기본적으로 빈 로그인 기능을 사용하며 User.active의 값을 확인하는 방법을 모른다. 사전에cakephp 커스텀 로그인 조건
감사
로그인하는 동안 사용자의 계정이 활성화되어 있는지 확인하고 싶습니다. 그러나 케이크의 인증 컴포넌트는 제어 방법을 알지 못하는 방식으로 로그인을 처리합니다. Cake는 기본적으로 빈 로그인 기능을 사용하며 User.active의 값을 확인하는 방법을 모른다. 사전에cakephp 커스텀 로그인 조건
감사
AuthComponent에는 $ userScope라고하는 추가 조건을 설정할 수있는 속성이 있습니다.
$this->Auth->userScope = array('User.active' => true);
참고 : 위의 케이크 1.x에서 적용
은 그냥으로, beforeFilter() 인증 설정 블록에서이 줄을 포함 2.x에서의 사용을 위해 :
$this->Auth->scope = array('User.active' =>true);
그런 다음 당신은 당신의 로그인 방법을 비워 둘 수 및 방문자를 인증 할 때 AuthComponent이 추가 조건을 추가합니다.
당신은 여기에 모든 추가 속성을 볼 수 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers
이 여분의 범위를 포함하지 않는 경우, 비활성 사용자는 여전히 로그인 할 수 있습니다 당신이 그들을 로그 아웃해야 할 것이다 당신의 확인 후 login() 메소드.
, 또는 당신은 그것을 배치 (로그인 폼 링크에 액션) 원하는 목적지 :
function login() {
if ($this->Session->read('Auth.User')) {
$active = $this->Auth->user('active');
if ($active) {
//(do stuff)
}
else {
//(do other stuff)
}
}
}
이는 "활성"가 있다고 가정을 true 또는 false (또는 1 또는 0) 중 하나가 포함 된 사용자 테이블의 열 $ this-> Auth-> user()를 사용하면 현재 로그인 한 사용자의 데이터에 액세스 할 수 있습니다. 여기에 더 많은 정보가 있습니다 : http://book.cakephp.org/view/1264/user
답장을 보내 주셔서 감사합니다.하지만 어떻게 든 나에게 도움이되지 못했고, 어쨌든 사용자가 로그인하지 않은 상태에서 로그인하지 못하게하는 아이디어가 마음에 들지 않습니다. 어쨌든 고마워.) – Elwhis