/var/www/vhosts/ihelp.ro/httpdocs/src/Model/Table
Edit: /var/www/vhosts/ihelp.ro/httpdocs/src/Model/Table/LoginTokensTable.php (1486B)
addBehavior('Timestamp');
$this->belongsTo('Users');
}
/**
* Used to generate cookie token
*
* @access public
* @param integer $userId user id
* @param string $duration cookie persist duration
* @return string
*/
public function saveCookieToken($userId, $duration)
{
$token = md5(uniqid('', true));
$loginTokenEntity = $this->newEmptyEntity();
$loginTokenEntity['user_id'] = $userId;
$loginTokenEntity['token'] = $token;
$loginTokenEntity['duration'] = $duration;
$loginTokenEntity['expires'] = date('Y-m-d H:i:s', strtotime($duration));
$this->deleteAll(['user_id' => $userId]);
$this->save($loginTokenEntity);
return $token . ':' . $userId . ':' . $duration;
}
/**
* Used to get user id by cookie token
*
* @access public
* @param array $credentials
* @return integer
*/
public function getUserIdByCookieToken($credentials)
{
$loginToken = $this->find()
->where(['LoginTokens.user_id' => $credentials['user_id'], 'LoginTokens.token' => $credentials['token'], 'LoginTokens.duration' => $credentials['duration'], 'LoginTokens.used' => 0, 'LoginTokens.expires >=' => date('Y-m-d H:i:s')])
->first();
if (!empty($loginToken)) {
$this->updateAll(['used' => 1], ['id' => $loginToken['id']]);
return $loginToken['user_id'];
}
return 0;
}
}