2011-10-07 3 views
1

로그인 사용자 이전에 사용자/로그인 동작에 몇 가지 작업을 수행하고 싶습니다.자동 로그인 사용 안함 CakePHP Auth login() 작업

예를 들어, 로그인 양식을 제출할 때마다 3 번 captcha 코드가 있으며 보안 문자 코드가 유효한지 확인하고 싶습니다. 유효하지 않은 경우 사용자가 제출하기 전에 먼저 올바르게 입력해야합니다. 그리고 captcha가 괜찮다면 Auth-> login()을 사용하고 싶습니다.

Auth-> data [ 'User'] [ 'username'] 및 Auth-> data [ 'User'] [ '' 비밀번호 ']가 채워지고 로그인이 (자동으로) 수행됩니다 ...

Auth 구성 요소의 자동 로그인을 비활성화하고 Auth-> login ($ data)에서만 할 수 있습니까?

답변

1
당신이 쓸 수

- 내가 (비슷한 보안 문자 물건)처럼 - [인증 구성 요소 있도록

후 로그인() 메소드를 오버라이드 (override)를 확장 자신의 AuthExt 구성 요소 (또는 이름 당신이 원하는대로 그것을)이 정장 당신의 필요

+0

이것이 최선의 방법이라고 생각합니다. 감사! – kode

1

하나의 옵션은 프로젝트에 따라 CakePHP 2.0으로 업그레이드하는 것입니다. 자동 마법 동작이 제거되었으므로 Identifying users and logging them in을 참조하십시오.

+0

업그레이드가 가능하면 좋은 점입니다. – kode

1

하나의 해킹은 Auth-> loginAction을 존재하지 않는 동작 (아무도 액세스 할 수 없도록 존재하지 않음)으로 설정하면 Auth가 login()에 자동 로그인하지 않으므로 직접 할 수 있습니다 거기에 논리 (암호 해시가 자동으로 적용됩니다).

+0

내가 한 또 다른 해킹은 사용자를 로그 아웃하고, 물건을 처리 한 다음 로그인하는 것입니다. – kode

0

사용이 :

function beforeFilter(){ 
} 

이 기능의 유 아무것도하기 전에 원하는 모든 것을 할 수는 컨트롤러에서 발생합니다.

+0

콜백을 사용하면 도움이되지 않았지만 감사합니다. – kode