В хедере index.php я отправляю запрос на валидацию
var WebApp = window.Telegram.WebApp;
let initDataURLSP = new URLSearchParams(WebApp.initData);
var checkDataString = initDataURLSP.toString();
$.ajax({
url: '/validate.php',
method: 'post',
dataType: 'json',
data: {checkDataString:checkDataString},
success: function(data){}
});
в файле делаю проверку токенов
$bot_token = "1234567890987654321234567890";
$data_check_string = $_POST['checkDataString'];
$data_check_arr = explode('&', rawurldecode($data_check_string));
$needle = 'hash=';
$check_hash = FALSE;
foreach( $data_check_arr AS &$val ){
if( mb_substr( $val, 0, mb_strlen($needle) ) === $needle ){
$check_hash = trim(substr_replace( $val, '', 0, mb_strlen($needle) ));
$val = NULL;
}
}
// if( $check_hash === FALSE ) return FALSE;
$data_check_arr = array_filter($data_check_arr);
sort($data_check_arr);
$data_check_string = implode("\n", $data_check_arr);
$secret_key = hash_hmac( 'sha256', $bot_token, "WebAppData", TRUE );
$hash = trim(bin2hex( hash_hmac( 'sha256', $data_check_string, $secret_key, TRUE ) ));
if( strcmp($hash, $check_hash) === 0 ){
//echo "validation success";
echo "{\"data_check\":\"$check_hash\"}";
}else{
header('HTTP/1.1 403 incorrect user');
exit();
}
Далее, при validation success я буду доставать пользователя из базы.
До этого момента мне все понятно.
А вот дальше, как взаимодействовать, не могу разобраться, чтобы авторизация из файла validate.php передавалась в index.php.
Попробовал сделать set_cookie в файле validate.php, но что-то не получилось.
В какую сторону копать?