0
$this->loadComponent('Auth', [
'storage' => 'Memory',
它是什麼意思它保存在內存中?那麼在哪裏?內存 ?我正在尋找並清楚。AuthComponent存儲設置爲內存
$this->loadComponent('Auth', [
'storage' => 'Memory',
它是什麼意思它保存在內存中?那麼在哪裏?內存 ?我正在尋找並清楚。AuthComponent存儲設置爲內存
比較AUTH session storage class:
/**
* Read user record from session.
*
* @return array|null User record if available else null.
*/
public function read()
{
if ($this->_user !== null) {
return $this->_user ?: null;
}
$this->_user = $this->_session->read($this->_config['key']) ?: false;
return $this->_user;
}
/**
* Write user record to session.
*
* The session id is also renewed to help mitigate issues with session replays.
*
* @param array|\ArrayAccess $user User record.
* @return void
*/
public function write($user)
{
$this->_user = $user;
$this->_session->renew();
$this->_session->write($this->_config['key'], $user);
}
要在auth memory storage class:
/**
* {@inheritDoc}
*/
public function read()
{
return $this->_user;
}
/**
* {@inheritDoc}
*/
public function write($user)
{
$this->_user = $user;
}
而會話存儲類(也可能是其他第三方的實現)去找找/存儲數據某處,內存存儲類只存儲/檢索自己的_user
屬性中的信息。因此,存儲在存儲器存儲類中的數據僅在(http)請求的生命期中持續存在,那麼下一個http請求將不具有認證憑證,並且如果相關的話將需要再次提供認證憑證。這種類型的存儲適用於無國籍身份驗證系統,indicated in the docs:
對於無狀態的認證程序存儲配置應設置爲內存中,以便AuthComponent不使用會話來存儲用戶記錄。
'用於保存用戶記錄的存儲類。在使用無狀態身份驗證器時,您應該將其設置爲Memory,因此我認爲它無法存儲,因爲它無狀態。 – Jelmer
閱讀文檔並檢查源代碼? https://github.com/cakephp/cakephp/blob/master/src/Auth/Storage/MemoryStorage.php – burzum