我想将未经身份验证的请求转发给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登录操作,但在登录后它不会重定向回原始请求的网页。
关于什么可能出错的任何想法?
答案 0 :(得分:1)
请注意,您必须将路由作为重定向参数传递,而不是URI。如果您想使用URL,请查看此模块:https://github.com/Eye4web/E4WZfcUserRedirectUrl
答案 1 :(得分:0)
我用自己的方式覆盖了默认视图。在我看来,我错过了重定向隐藏表单元素。
添加隐藏的重定向表单元素解决了重定向问题。
我也在使用旧版本的ZfcUser,我相信这个功能可能会在版本之间发生变化。