代码之家  ›  专栏  ›  技术社区  ›  nielsv

ERR_TOO_MANY_DIRECTS+重定向匿名用户时

  •  0
  • nielsv  · 技术社区  · 12 年前

    我正在使用Silex(基于Symfony2的微框架)。

    当一个会话到期时(比如两个小时没有活动),我刷新页面时,总是会收到错误消息,他无法在空属性上找到属性displayName。因为在布局视图中,我有:
    {{ app.user.displayName }} 。(这是合乎逻辑的)

    现在我想在用户未登录时重定向到登录页面。我在$app->在此之前:

    $app->before(function (Request $request) use($app) {
        if ($request->getMethod() === "OPTIONS") {
            $response = new Response();
            $response->headers->set("Access-Control-Allow-Origin","*");
            $response->headers->set("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");
            $response->headers->set("Access-Control-Allow-Headers","Content-Type");
            $response->headers->set("Access-Control-Expose-Headers","handshake");
            $response->setStatusCode(200);
            $response->send();
        }
    
        if ($app['security']->isGranted('IS_AUTHENTICATED_ANONYMOUSLY')) {
            return $app->redirect('/login');
        }
    });
    

    但当我这样做时,我总是会出错: ERR_TOO_MANY_REDIRECTS 。但我该怎么解决?

    1 回复  |  直到 12 年前
        1
  •  0
  •   nielsv    12 年前

    创建了一个控件来检查您是否在登录页面上。如果不是->重定向到登录页面。

    if ($app['security']->isGranted('IS_AUTHENTICATED_ANONYMOUSLY')) {
        $routeName = $request->get('_route');
        if($routeName != 'user.login')
        {
            return $app->redirect('/');
        }
    }
    
    推荐文章