Можно ли каким-либо образом прочитать идентификатор сеанса браузера с помощью javascript?
Чтение идентификатора сеанса с использованием Javascript
Ответ 1
Да. Поскольку идентификатор сеанса либо переносится по URL (document.location.href
), либо через файл cookie (document.cookie
), вы можете проверить оба на наличие идентификатора сеанса.
Ответ 2
вы можете получить идентификатор сеанса, выпустив следующее регулярное выражение на document.cookie:
оповещения (document.cookie.match(/PHPSESSID = [^;] +/));
в моем примере имя файла cookie для хранения идентификатора сеанса - PHPSESSID (php-сервер), просто замените PHPSESSID на имя файла cookie, в котором содержится идентификатор сеанса. (настраивается веб-сервером)
Ответ 3
Для извлечения JSESSIONID может быть использовано следующее:
function getJSessionId(){
var jsId = document.cookie.match(/JSESSIONID=[^;]+/);
if(jsId != null) {
if (jsId instanceof Array)
jsId = jsId[0].substring(11);
else
jsId = jsId.substring(11);
}
return jsId;
}
Ответ 4
Насколько я знаю, сеанс браузера не имеет идентификатора.
Если вы имеете в виду сеанс сервера, который обычно хранится в файле cookie. Файл cookie, который хранится в ASP.NET, например, называется "ASP.NET_SessionId".
Ответ 5
Для переменной PHP PHPSESSID эта функция работает:
function getPHPSessId() {
var phpSessionId = document.cookie.match(/PHPSESSID=[A-Za-z0-9]+\;/i);
if(phpSessionId == null)
return '';
if(typeof(phpSessionId) == 'undefined')
return '';
if(phpSessionId.length <= 0)
return '';
phpSessionId = phpSessionId[0];
var end = phpSessionId.lastIndexOf(';');
if(end == -1) end = phpSessionId.length;
return phpSessionId.substring(10, end);
}
Ответ 6
Здесь короткая и приятная функция JavaScript для получения идентификатора сеанса:
function session_id() {
return /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
}
Или, если вы предпочитаете переменную, здесь простой однострочный:
var session_id = /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
Должен совпасть с cookie идентификатора сеанса для PHP, JSP,.NET, и я полагаю, что и другие серверные процессоры.
Ответ 7
вы можете, возможно, пинговать сервер через ajax внутри javascript. Файл php может выглядеть примерно так:
<?php
session_start();
$id = session_id();
echo $id;
?>
Это вернет вам текущий идентификатор сеанса. Это то, что вы искали.
Ответ 8
Обновление 2017
var cookie = new URLSearchParams(document.cookie)
if(cookie.has("PHPSESSID")){
var sessionID = cookie.get("PHPSESSID")
}