【问题标题】:ZF2: passing redirect url as parameterZF2:将重定向 url 作为参数传递
【发布时间】:2014-06-17 06:49:58
【问题描述】:

我正在尝试在某些情况下实施“登录重定向”,例如我的网站上有一个页面仅供登录用户使用。

到目前为止,当访客用户转到该页面时,访客被重定向到登录页面,我希望用户在登录后重定向到同一页面。

我的登录模块是:http://samsonasik.wordpress.com/2012/10/23/zend-framework-2-create-login-authentication-using-authenticationservice-with-rememberme/ 并将此代码集成到“application/auth”控制器中。

当我使用这个网址时: www.qa-staging.com/hemaa/auth/login/redirect/http%3A%2F%2Fgoogle.com
它给了我一个 404 错误。

使用时: www.qa-staging.com/hemaa/auth/login/redirect/http://google.com 然后路由工作,但我认为这不是实现这一目标的好习惯。

控制器:身份验证
操作:登录
参数1:重定向
param2:要重定向的url

'noModule' => array(  
    'type' => 'Segment',  
        'options' => array(  
            'route'    => '/[:controller][/:action[/:param1[/:param2[/:param3]]]]',  
            'constraints' => array(  
            'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',  
            'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',  
            'param1'     => '[a-zA-Z0-9_-]*',  
            'param2'     => '(.)+',  
            'param3'     => '(.)+',  
        ),  
        'defaults' => array(  
            '__NAMESPACE__' => 'Application\Controller',  
            'controller'    => 'Index',  
            'action'        => 'index',  
        ),  
    ),  
),  

知道如何实现吗?

【问题讨论】:

    标签: routing zend-framework2


    【解决方案1】:

    我认为您应该考虑为此使用 GET 参数。 为此类功能使用 ZF2 路由参数不是正确的方法。

    所以你的请求会是这样的:

    www.qa-staging.com/hemaa/auth/login?redirect=http%3A%2F%2Fgoogle.com
    

    然后在 ZF2 中你可以像这样获取 GET 重定向参数:

    $request = $serviceManager->get('Request');
    $redirect = $request->getQuery('redirect');
    

    然后您可以稍后使用它来管理您的重定向,例如使用ZF2 redirect plugin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多