Zend framework2 Zend Framework 2条令身份验证注销非活动用户

Zend framework2 Zend Framework 2条令身份验证注销非活动用户,zend-framework2,Zend Framework2,我尝试在X分钟不活动后注销用户。 但是我找不到设置会话过期时间的方法。 我使用条令2作为身份验证服务器/adpter。 我需要帮助。首先,您必须注册用户拥有的所有单独会话。用户可以同时使用不同的浏览器登录。对于每个会话,您都需要注册用户启动会话的时间 在一些伪代码中: use Zend\Session\SessionManager; public function login($username, $password) { // do some checks to perform th

我尝试在X分钟不活动后注销用户。
但是我找不到设置会话过期时间的方法。
我使用条令2作为身份验证服务器/adpter。

我需要帮助。

首先,您必须注册用户拥有的所有单独会话。用户可以同时使用不同的浏览器登录。对于每个会话,您都需要注册用户启动会话的时间

在一些伪代码中:

use Zend\Session\SessionManager;

public function login($username, $password)
{
    // do some checks to perform the login
    // now you have a $user available if login is success

    // Session holds the session id and a timestamp
    $manager = new SessionManager;
    $id      = $manager->getId();

    $session = $this->registerSession($user, $id);
}
然后,您必须在每次请求时检查当前会话是否不仅适用于php(默认登录代码),而且根据您的TTL(生存时间)检查会话是否仍然有效。因此,假设您使用
getAuthenticatedUser()
获得登录用户,编写如下内容:

use Zend\Session\SessionManager;

public function getAuthenticatedUser()
{
    $manager = new Sessionmanager;

    // This is the session id
    $id = $manager->getId();

    // Now get the $session you registered earlier based on $id

    $now = new DateTime;
    if ($session->getTTL() > $now) {
         return false;
    }

    // continue and get $user based on $session
}