이 제대로 난 그냥 ZfcUser 기능을 추가하고 사용자의 ID를 얻기 위해 storageChain를 사용하는 것이 더 좋을 것 bjyAuthorize 전에 자신을 주입하려고하지 않을 수행합니다.
은 당신이 ZfcUser을 복사 할 수 basicly 자신의 공장을 만들고 너무와
public function createService(ServiceLocatorInterface $serviceLocator)
{
$storageChain = new \Zend\Authentication\Storage\Chain();
// dummy storage interface
$nonPersistent = new \Zend\Authentication\Storage\NonPersistent(); // replace this with your own storage interface.
$nonPersistent->write(1); // just to test
/* @var $authStorage Storage\StorageInterface */
$authStorage = $serviceLocator->get('ZfcUser\Authentication\Storage\Db');
$storageChain->add($authStorage, 10); // Check this interface first.
$storageChain->add($nonPersistent, 0); // Check this interface Second.
/* @var $authAdapter Adapter\AdapterInterface */
$authAdapter = $serviceLocator->get('ZfcUser\Authentication\Adapter\AdapterChain');
return new AuthenticationService(
$storageChain,
$authAdapter
);
}
을 변경하기 위해 필요한이 후 ZfcUser
'service_manager' => array(
'factories' => array(
'zfcuser_auth_service' => 'myNamespace\Factory\AuthenticationServiceFactory',
),
),
의 서비스 이름을 재정 의하여이 시작을 할 수 $this->zfcUserAuthentication()->getIdentity()
을 수행하는 예제 코드는 세션에 로그인 한 사용자가 없을 때 1을 반환합니다.
이 후 자신 만의 저장소 인터페이스를 만들어야합니다. Zend \ Authentication \ Storage \ StorageInterface를 구현합니다. 나는 당신의 쿠키 구현이 어떻게되는지 알지 못한다. 그리고 당신은 이것을 적응시켜야 할 것이다. 또한 쿠키를 사용할시기와하지 않을 때를 구현해야합니다. GoalioRememberMe이라는 기억 기능을 구현하는 zfcuser 용 모듈도 있습니다. 나는 이것이 당신을 돕기를 바랍니다.
고맙습니다. @Otto Sandström, 나는 그것을 시도 할 것입니다! –
이렇게하는 것이 좋지 않습니까? https://gist.github.com/Gamempire/cdb8bc1a97a29bbd7b7e (UserService는 쿠키를 확인하는 맞춤 서비스입니다) –
storageChain의 우선 순위가 뒤 바뀌 었습니다! authStorage는 우선 순위가 더 높은 번호 여야합니다. –