[英]Deleting current unique session id by phalcon?
當我從cop1
應用程序(項目)注銷時,如果我使用$this->session->destroy
:它被銷毀了所有兩個應用程序會話(兩個應用程序都注銷了),但是如果我使用remove
功能,它將很好地工作。 $this->session->remove("user")
。因為它唯一被破壞的相對會話用戶,因此只有cop1
被注銷。 我需要刪除所有當前(cop1)會話, 而不僅僅是會話變量user
? 我該如何處理?
本地主機/ cop1 / ..
$di->set('session', function () {
$session = new SessionAdapter();
$session->setOptions(['uniqueId'=> "cop1_"]);
$session->start();
return $session;
});
本地主機/ cop2 / ..
$di->set('session', function () {
$session = new SessionAdapter();
$session->setOptions(['uniqueId'=> "cop2_"]);
$session->start();
return $session;
});
除了正常的Session以外,您是否還嘗試過使用Session Bags ?
該組件有助於將會話數據分成“命名空間”。 通過這種方式,您可以輕松地在應用程序中創建會話變量組。 通過僅在“ bag”中設置變量,它會自動存儲在會話中。
每當有人登錄到您的應用程序時,您都會創建一個會話包:
$sessionBag = new \Phalcon\Session\Bag('user');
$sessionBag->set('key', 'value');
當您要注銷時,請執行以下操作:
$sessionBag->destroy();
我無法嘗試使用session bag
因為我當前的項目有太多的模塊和會話,因此我沒有時間替換代碼。 現在我的問題可以通過session_name
解決,但是我不知道這是一個好方法嗎? 希望對像我這樣的人有所幫助...
session_name允許您為每個應用程序[相同域]提供不同的會話。
本地主機/ cop1 / ..
$di->set('session', function () {
$session = new SessionAdapter();
$session->setOptions(['uniqueId'=> "cop1_"]);
session_name("cop1");
$session->start();
return $session;
});
本地主機/ cop2 / ..
$di->set('session', function () {
$session = new SessionAdapter();
$session->setOptions(['uniqueId'=> "cop2_"]);
session_name("cop2");
$session->start();
return $session;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.