2014-01-24 33 views
3

我正在尋找一個工作解決方案,爲另一個Symfony2環境中的另一個域設置會話cookie的安全克隆。我的想法是,在用戶登錄後立即設置克隆的cookie,以便用戶可以在兩個不同的Symfony2環境中對兩個不同域進行身份驗證。在Symfony2中克隆另一個域的會話cookie

Domain: mysite-a.com  // Environment -e site 
Domain: api.mysite-b.com // Environment -e api 

在哪裏可以找到像一個控制器事件(最佳解決方案)的掛鉤?

我使用最新的2.x.dev版本的FOSUserBundle

我知道,這個配置相當醜陋。不幸的是,我不允許 將域配置從api.mysite-b.com更改爲api.mysite-a.com(又名wildcard-cookies)。

+0

你能解決這個問題嗎? – ghostika

+0

@ghostika不幸的是,沒有。你可以投票提出這個問題(凹凸)或開始賞金。 – mate64

回答

0

我覺得沒有合適的包來處理這個問題,但是在PHP規範,你可以找到一個準確的選項來管理您的問題$domain

bool setcookie (string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]]); 

在Symfony2中,你ened使用Cookie對象:

use Symfony\Component\HttpFoundation\Cookie; 

$response->headers->setCookie(new Cookie('foo', 'bar')); 

Cookie的構造函數有相同的選項,PHP方法:

public function __construct($name, $value = null, $expire = 0, $path = '/', $domain = null, $secure = false, $httpOnly = true) 

關於,

+0

我不認爲你可以在另一個域上創建一個cookie。它可能允許任何人創建一個cookie來冒充任何網站上的某個人。 –

+1

但它不是「任何」域,而是你自己的子域。 –

+0

'api.mysite-b.com'是'api.mysite-b.com'的一個子域名。但'api.mysite-b.com'和'mysite-a.com'不是同一個域。所以我認爲它不適用於這個問題。 –