ZF2 ZfcUser Регистрация перенаправления

На основании этого поста: ZfcUser Перенаправить на мою страницу после регистрации
Проблема с перенаправлением после регистрации. Возвращение объекта \ zend \ Http \ Response из события ‘register.post’ не перенаправляет

Я пытаюсь перенаправить недавно зарегистрированного пользователя на пользовательский маршрут безуспешно.
В настоящее время я использую свой собственный MemberListner, как описано здесь:
zfcuser добавить роль пользователя после регистрации

Это позволяет мне успешно использовать триггер события «register.post» для записи дополнительной информации.
Я также использовал это, чтобы добавить новые поля формы регистрации и фильтры с их собственными соответствующими функциями

    $this->listeners[] = $sharedManager->attach('ZfcUser\Service\User', 'register', array($this, 'onRegister'));
$this->listeners[] = $sharedManager->attach('ZfcUser\Service\User', 'register.post', array($this, 'onRegisterPost'));

// SCN Social Auth did not register the link. Need to add here too.
$this->listeners[] = $sharedManager->attach('ScnSocialAuth\Authentication\Adapter\HybridAuth', 'registerViaProvider.post', array($this,'onSocialRegisterPost'));

// Currently run within the module due to lack of service manager on authentication
$this->listeners[] = $sharedManager->attach('ZfcUser\Authentication\Adapter\AdapterChain', 'authenticate.success', array($this, 'onAuthenticateSuccess'));

Мне удалось найти способ перенаправления при успешном входе в систему. Это написано в Module.php в onBootStrap () из-за моего отсутствия менеджера сервисов (отсутствие понимания, как его обойти).

$zfcAuthEvents    =  $serviceManager->get('ZfcUser\Authentication\Adapter\AdapterChain')->getEventManager();
$zfcAuthEvents->attach('authenticate.success', function($authEvent) use ($serviceManager) {

В этой функции обратного вызова есть блок

if ($member->getStatus() != 'COMPLETE') {
// we are going to re-set service,
// we need to set allow_override of serviceManager= true
$serviceManager->setAllowOverride(true);

$zfcuserModuleOptions = $serviceManager->get('zfcuser_module_options');
$zfcuserModuleOptions->setLoginRedirectRoute('member-register',array('action'=>'<My-Custom-Action>'));
$serviceManager->setService('zfcuser_module_options', $zfcuserModuleOptions);

// set 'allow_override' back to false
$serviceManager->setAllowOverride(false);
}

Поэтому: при входе в систему это прекрасно работает, и я могу отфильтровать то, что мне нужно, и перенаправить соответственно.
Однако при регистрации я никуда не могу попасть, кроме страницы по умолчанию / пользователя со ссылкой Gravatar и выходом из системы. (Это также перезаписывается в моем файле module.config.php в / account /, а не в / user /)

Я заметил, что в ZfCUser после регистрации происходит отправка:
ZfcUser / Controller / UserController.php вокруг строки 235 выполняет

$request->setPost(new Parameters($post));
return $this->forward()->dispatch(static::CONTROLLER_NAME, array('action' => 'authenticate'));

Это похоже на аутентификацию после регистрации, и поэтому я предполагаю, что событие «authenticate.success» инициировано (как описано выше), но это не так.

Мое «предположение» заключается в том, чтобы $ redirect = $ this-> redirectCallback; в /ZfcUser/Controller/UserController.php -> authenticateAction () [~ строка 169]

Обратите внимание:
Использование Bjyauthorise для управления ролями, вход в ScnSocial для Facebook.

Любые указатели или решения, которые сработали, приветствуются.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]