代码之家  ›  专栏  ›  技术社区  ›  Aron Rotteveel

如何在使用zend_auth进行身份验证后重定向到请求的URI?

  •  5
  • Aron Rotteveel  · 技术社区  · 16 年前

    我用的是简单的 Zend_Auth 安装程序使用中的predspatch()方法对我的某个应用程序的用户进行身份验证。 controller plugin . 当匿名用户导航到

    /users/view/id/6
    

    例如,在身份验证之后,它们应该被重定向到上面的URI。

    最好的方法是什么?我不想去商店 $_SERVER['REQUEST_URI'] 在会议上。就个人而言,我会发现将整个Zend请求对象存储到最干净的解决方案中,但我不确定这是否明智,也不确定这是否是我应该采用的方法。

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   danielrsmith    16 年前

    重定向或转发到LoginController可能不是将未经身份验证的用户带到登录页面的最佳方式。相反,在predpatch,您可以获取$request对象并通过执行以下操作来更改它。

    $request->setActionName('someaction');
    $request->setControllerName('somecontroller');
    

    此时,您在维护中的原始请求,但页面显示登录页面。然后,您可以更改您的登录控制器,以检查当前请求位置是登录控制器还是其他什么。如果在成功登录时还有其他东西(原始请求),请将它们发送到该页面。

        2
  •  1
  •   xelurg    16 年前

    我们也遇到了同样的问题,实际上在会话变量中存储了请求URI。 如果您不将任何特定的、不可分割的对象放入Zend请求中,我认为持久化它也是可以的。

    然而,这取决于您期望的吞吐量。如果你有一个高流量的网站,对Zend请求这样的对象进行序列化可能不是最好的主意。

    推荐文章