如何使用ZfcUser重定向?

时间:2015-04-03 23:21:04

标签: php zend-framework2 zfcuser

我想将未经身份验证的请求转发给ZfcUser登录操作,然后在成功登录后重定向到原始请求。

我在控制器操作中有这段代码;

// Check we are logged in.
if (!$this->zfcUserAuthentication()->hasIdentity()) {

    // Set the 'redirect' parameter
    $redirect = $this->getRequest()->getRequestUri();
    $this->getRequest()->getQuery()->set('redirect', $redirect);

    // Forward request to zfcUser's login action.
    return $this->forward()->dispatch('zfcuser', array(
        'action' => 'login'
    ));
}

我在ZfcUser配置中取消了这一行;

'use_redirect_parameter_if_present' => true,

它会转发到保留原始网址的ZfcUser登录操作,但在登录后它不会重定向回原始请求的网页。

关于什么可能出错的任何想法?

2 个答案:

答案 0 :(得分:1)

请注意,您必须将路由作为重定向参数传递,而不是URI。如果您想使用URL,请查看此模块:https://github.com/Eye4web/E4WZfcUserRedirectUrl

答案 1 :(得分:0)

我用自己的方式覆盖了默认视图。在我看来,我错过了重定向隐藏表单元素。

添加隐藏的重定向表单元素解决了重定向问题。

我也在使用旧版本的ZfcUser,我相信这个功能可能会在版本之间发生变化。