AuthComponent存储设置为内存

时间:2016-12-22 17:46:08

标签: cakephp memory storage cakephp-3.0

$this->loadComponent('Auth', [
   'storage' => 'Memory',

它在内存中的保存意味着什么?那么在哪里?内存 ?我正在寻找并清楚地找到它。

1 个答案:

答案 0 :(得分:1)

比较身份验证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);
}

到身份验证memory storage class

/**
 * {@inheritDoc}
 */
public function read()
{
    return $this->_user;
}

/**
 * {@inheritDoc}
 */
public function write($user)
{
    $this->_user = $user;
}

虽然会话存储类(可能是所有其他第三方实现)希望在某处查找/存储数据,但内存存储类只存储/检索来自它自己_user的信息。属性。

因此,存储在内存存储类中的数据仅在(http)请求的生命周期内持续存在,下一个http请求将没有身份验证凭据,并且如果相关,将需要再次提供身份验证凭据。此类存储适用于无状态Auth系统,如indicated in the docs

  

对于无状态身份验证器,应将存储配置设置为“内存”,以便AuthComponent不使用会话来存储用户记录。