Как реализована система "Запомнить меня" в таком форумном движке как XenForo, например? На сайте(не в движке), "Запомнить меня" реализовано так:
if (isset($params['loginFormCheckbox'])) {
$cookieHashSalt = '********************************************';
$hashTemplate = $params['loginFormLogin'] . $params['loginFormPassword'];
$justVerifyHash = hash('sha256', $hashTemplate . $cookieHashSalt);
setcookie('rememberUserID', $responseTwo['success']['id'], time() + 2629743);
setcookie('rememberUserHash', $justVerifyHash, time() + 2629743);
$_SESSION['loggedUserID'] = $responseTwo['success']['id'];
} else $_SESSION['loggedUserID'] = $responseTwo['success']['id'];
и
if (isset($_COOKIE['rememberUserHash']) && isset($_COOKIE['rememberUserID'])) {
$cookieHashSalt = '********************************************';
$queryResult = $query->query($queryBuilder
->select('login, password')
->from('users')
->where('id', $_COOKIE['rememberUserID'])
->sql(), $queryBuilder->values);
if (isset($queryResult)) {
$hashTemplate = $queryResult[0]->login . $queryResult[0]->password;
$justVerifyHash = hash('sha256', $hashTemplate . $cookieHashSalt);
$rememberUserHash = $_COOKIE['rememberUserHash'];
if ($justVerifyHash === $rememberUserHash) {
$_SESSION['loggedUserID'] = $_COOKIE['rememberUserID'];
}
}
}
Но почему-то сессия все равно сбрасывается и куки исчезают... Возможно ли то, что это из-за того, что за сайтом стоит Cloudflare?