2012-04-27 80 views
7

我正在實施一個Web服務作爲Symfony2站點的一部分,該站點將使用來自另一個(靜態)站點的JSONp和iframe進行訪問。當用戶使用iFrame登錄時,Safari不會保留會話,因此我將會話ID存儲在使用javascript的靜態網站的Cookie中,並將其傳遞迴請求的GET或POST參數,該參數工作正常。有沒有辦法阻止Symfony2發送特定路徑的會話cookie?

問題是,在其他瀏覽器上,Web服務的會話cookie正在保留,這意味着當用戶註銷時,它們實際上仍然登錄到Symfony站點。

有沒有辦法只爲symfony網站的Web服務部分禁用PHP會話cookie,最好是以Symfony2友好的方式(例如,與.htaccess混淆)?

我還想要一個會話,但是會通過在我所做的所有請求中傳遞一個PHPSESSID變量來維護它。

回答

11

This可能只是你正在尋找的東西。具有無狀態防火牆:

在你security.yml

# app/config/security.yml 
security: 
    firewalls: 
     main: 
      stateless: true 
+0

我想我試過了,並沒有使用基於表單的登錄什麼工作。 – rjmunro 2012-09-17 12:06:13

+0

啊形式的基礎。是的,即使在文檔中,它表示基於表單的登錄將使用會話和cookie。我正在做一個無狀態的web服務,所以竅門 – 2012-09-17 12:08:18

+0

請參閱:[Symfony Book - 安全 - 無狀態身份驗證](http://symfony.com/doc/current/book/security.html#stateless-authentication) – flu 2014-11-25 10:53:50

相關問題