. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
| Server IP : 3.13.122.42 / Your IP :
216.73.217.172 [
Web Server : Apache System : Linux vmsrv01.metacllc.com 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 User : a1securityllc.com_5u5m69iigjb ( 10001) PHP Version : 8.3.31 Disable Function : opcache_get_status Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/a1securityllc.com/httpdocs/wp-content/mu-plugins/wp-toolkit/Login/ |
Upload File : |
<?php
// Copyright 1999-2026. WebPros International GmbH. All rights reserved.
namespace Webpros\WptkWpPlugin\WpToolkit\Login;
use Webpros\WptkWpPlugin\WpToolkit\Common\WordPressHelper;
class TokenStorage
{
const WP_OPTION_TOKEN_HASH = 'wp-toolkit_login_token_hash';
const WP_OPTION_LOGIN = 'wp-toolkit_login_user';
const WP_OPTION_TTL = 'wp-toolkit_login_ttl';
/**
* @var TokenGenerator
*/
private $tokenGenerator;
/**
* @param TokenGenerator $tokenGenerator
*/
public function __construct($tokenGenerator)
{
$this->tokenGenerator = $tokenGenerator;
}
/**
* @param string $token
* @param string $login
* @param int $ttl
* @return void
*/
public function saveToken($token, $login, $ttl)
{
$tokenHash = $this->tokenGenerator->generateTokenHash($token);
$tokenEndDate = $this->tokenGenerator->getTokenEndDate($ttl);
WordPressHelper::upsert_option(self::WP_OPTION_TOKEN_HASH, $tokenHash);
WordPressHelper::upsert_option(self::WP_OPTION_LOGIN, $login);
WordPressHelper::upsert_option(self::WP_OPTION_TTL, $tokenEndDate);
}
/**
* @return void
*/
public function removeTokenData()
{
delete_option(self::WP_OPTION_TOKEN_HASH);
delete_option(self::WP_OPTION_LOGIN);
delete_option(self::WP_OPTION_TTL);
}
/**
* @return string
*/
public function getTokenHash()
{
return $this->getStringOption(self::WP_OPTION_TOKEN_HASH);
}
/**
* @return string
*/
public function getLogin()
{
return $this->getStringOption(self::WP_OPTION_LOGIN);
}
/**
* @return string
*/
public function getTtl()
{
return $this->getStringOption(self::WP_OPTION_TTL);
}
/**
* @param string $option
* @return string
*/
private function getStringOption($option)
{
$result = get_option($option);
if (is_string($result)) {
return $result;
}
return '';
}
}