如何重定向到外部URL在symfony的4注销

问题描述 投票:1回答:2

只是不知道是否有一个简单的解决方案,这在Symfony的4通常情况下用户将注销和被送回主页。但有一个页面,检查出用户当前在其他网站验证,如果这是不正确我有注销用户我的网站,并重定向到外部网站的链接。我使用app.php控制器以下路由管理本网站上的一个古老的硅石基于版本

$app->get('/logout', $app->factory(function() use($app) {
$pid = $app['request_stack']->getCurrentRequest()->query->get('pid');
$message = $app['request_stack']->getCurrentRequest()->query->get('message');
$redirect = $app['request_stack']->getCurrentRequest()->query->get('redirect');
return $app->redirect(FRAMEWORK_URL."/logout?pid=$pid&message=$message&redirect=$redirect");
})

);

谢谢

马丁

php symfony
2个回答
2
投票

logout.target外部URL防火墙设置security.yaml的价值:

    firewalls:
        main:
                ...
            logout:
                ...
                target: 'EXTERNAL URL'

logout.target的价值可能是一个URL或应用程序路径名。应用途径和相关的控制器可以用来创建动态重定向目标。


0
投票

好了,所以这种尝试

我做了一个控制器,一个新的路径:

    /**
 * @Route("/redirectafterlogout/{url?/}", name="redirectafterlogout")
 */
public function redirectafterlogout($url)
{
    if($url == "/"){
        // redirects to the "homepage" route
        return $this->redirectToRoute('homepage');
    } else {
        return $this->redirect('http://'.$url);
    }
}

我说这security.yaml

logout:
            path:   logout
            target: 'redirectafterlogout'

它工作正常,并记录了我,并把我的网页上,如果我用正常的注销链接。但是,如果我尝试的链接,如:

它重定向我,但似乎并没有记录我出去?我可以回去跟我的浏览器,我仍然登录?

不知道我做错了吗?

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.