1

我在以下情况下遇到问题:
在我的 Symfony2 应用程序中,登录的用户打开第 3应用程序(TinyMCE 的文件名)。如何使用 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,这会导致重定向到登录页面。

4

2 回答 2

1

我的建议是将 tinyMCE(您网站上的任何 3rd 方应用程序)放在防火墙后面。

#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。检查您之前登录的环境。

于 2013-11-20T15:51:35.203 回答
1

在 security.yml 你可以设置记住我是默认的。这是参考,我不想复制整个配置文件。

Symfony 参考

于 2013-11-17T21:15:16.570 回答