只是不知道是否有一个简单的解决方案,这在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");
})
);
谢谢
马丁
在logout.target
外部URL防火墙设置security.yaml
的价值:
firewalls:
main:
...
logout:
...
target: 'EXTERNAL URL'
logout.target
的价值可能是一个URL或应用程序路径名。应用途径和相关的控制器可以用来创建动态重定向目标。
好了,所以这种尝试
我做了一个控制器,一个新的路径:
/**
* @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'
它工作正常,并记录了我,并把我的网页上,如果我用正常的注销链接。但是,如果我尝试的链接,如:
它重定向我,但似乎并没有记录我出去?我可以回去跟我的浏览器,我仍然登录?
不知道我做错了吗?
谢谢