Jam*_*all 0 flash session symfony
我在我的symfony2应用程序中使用了一个flash组件,它上传了多个图像,当它们到达服务器时,我想重新打开会话,这样我就可以将图像存储在相对于登录用户的位置.我发送每个文件上传的PHP会话ID ...
在香草PHP我可以实现这一点......
session_id($originalSessionId);
session_start();
Run Code Online (Sandbox Code Playgroud)
但是有一种symfony2方法使用安全上下文吗?
编辑:这是一个类似的问题,虽然我想通过传递令牌并使用单独的防火墙保护上传URL来创建某种基于令牌的登录.
首先,您需要创建自己的会话存储类,如下所示:
<?php
namespace Elao\BackBundle\Session;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage;
class Storage extends NativeSessionStorage
{
public function __construct(array $options = array(), ContainerInterface $container)
{
$request = $container->get('request');
if ($request->query->has('sessionId')) {
$request->cookies->set(session_name(), 1); // We have to simulate this cookie, in order to bypass the "hasPreviousSession" security check
session_id($request->query->get('sessionId'));
}
return parent::__construct($options);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您必须重新定义默认值(例如,在config.yml中):
parameters:
session.storage.native.class: ElaoBackBundleSessionStorage
services:
session.storage.native:
class: %session.storage.native.class%
arguments: [%session.storage.options%, @service_container]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5032 次 |
| 最近记录: |