상황이 있습니다 : 구조적 데이터 (예 : 배열 또는 객체 또는 문자열)를 Zend_Auth ID로 저장합니다. 버전간에 버전의 신원이 변경 될 수 있으므로 한 버전의 신원이 다른 버전의 애플리케이션 코드와 호환 될 수 있습니다.Zend_Auth identity versioning
저장된 신원 데이터가 현재 버전 요구 사항을 준수하는지 확인하는 기능이 필요합니다.
내가 수동에서 보듯이
은 신원이 있는지 여부의 검증과 같이 수행됩니다$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
// Identity exists; get it
$identity = $auth->getIdentity();
}
그러나 hasIdentity()
방법에 후크 할 능력이 없다거나 다른 곳 유효성 검사를 수행 할 수 있습니다.
내가 할 수있는 유일한 방법은 구현으로 다른 저장소를 사용하고 저장된 데이터의 유효성 검사를 수행 할 내 Zend_Auth_Storage_Interface
클래스를 구현하는 것입니다.
더 이상 적절한 해결책이 있습니까?
당신이 옳습니다. 저는 Zend_Auth를 사용하여 사용자를 인증하고 Zend_Acl을 사용하여 권한을 부여합니다 (미리 탐색 및 preDispatch에 대한 사용 권한 확인 필터링). 그러나 Zend_Acl을 사용하여 신원이 잘못되었다고 어떻게 판단 할 수 있습니까? 사용자에게 권한이 없거나 이와 유사한 내용이 있어야한다는 의미입니까? –
구체적으로 말하자면, 사이트는 회원 영역으로 만 구성됩니다. 즉, 사용자가 로그인하지 않은 경우 페이지 대신 로그인 양식을 표시해야합니다. 그렇지 않으면 사용자가 로그인 할 때, 그는 허용 된 사이트 부분을 보게됩니다. 따라서 잘못된 정체성이있는 경우 사용자의 역할을 "익명"으로 판단하고 익명으로 처리해야합니다. –
당신은 맞습니다. 역할이 어떻게 작용하는지에 따라, 당신은 덜 관용적 인 역할에서 가장 강력한 것으로 상속받을 수 있습니다. 저는 대개 로그인을 페이지와 로그인에 액세스 할 수있는 유일한 권한으로 나의 시작 역할로 게스트를 사용한 다음 권한을 상승시킵니다. –