我遇到以下情况的问题:
在我的Symfony2应用程序中,登录的用户打开3 rd 方应用程序(TinyMCE的filenamager)。如何使用SF2应用程序的凭据授权用户?
如果用户在登录页面上检查remember_me
,则可以执行以下操作:
//Bootstrap of 3rd party app
require_once('../../../app/bootstrap.php.cache');
require_once('../../../app/AppKernel.php');
$kernel = new AppKernel('prod', false);
$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
$container = $kernel->getContainer();
if(false == $container->get('security.context')->isGranted('ROLE_USER'))
{
$response = new \Symfony\Component\HttpFoundation\RedirectResponse('http://'.$request->getHost());
return $response->send();
}
但如果未使用remember_me
登录,则会导致重定向到登录页面。
答案 0 :(得分:1)
在security.yml上,您可以设置默认情况下记住我是YES。 这是参考,我不想复制整个配置文件。
答案 1 :(得分:1)
我的建议是将tinyMCE(您网站上的任何第三方应用)放在防火墙后面。
#security.yml
firewalls:
tiny_mce:
pattern: ^/path/to/your/tinymce/dir
http_basic: # Any authentication provider here
realm: "Secured Demo Area"
当用户打开tinymce时,浏览器会请求http://example.com/path/to/your/tinymce/dir/tinymcefile.html。并且symfony将要求用户进行身份验证,因为您已在security.yml中提及此路径
更新
当您在开发环境中登录然后尝试从prod env或反向访问路径时,可能会出现此问题!我看到,对于微小的mce,你使用dev env。检查您之前登录的内容。