Прочитать идентификатор сессии, используя Javascript - PullRequest
27 голосов
/ 28 мая 2009

Можно ли каким-либо образом прочитать идентификатор сеанса браузера, используя javascript?

Ответы [ 7 ]

31 голосов
/ 28 мая 2009

Да. Поскольку идентификатор сеанса передается либо по URL-адресу (document.location.href), либо с помощью файла cookie (document.cookie), вы можете проверить оба идентификатора сеанса на наличие.

7 голосов
/ 07 ноября 2013

Для получения 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;
}
5 голосов
/ 11 января 2010

вы можете получить идентификатор сеанса, выполнив следующее регулярное выражение в document.cookie:

alert(document.cookie.match(/PHPSESSID=[^;]+/));

в моем примере имя файла cookie для хранения идентификатора сеанса - PHPSESSID (сервер php), просто замените PHPSESSID именем файла cookie, содержащим идентификатор сеанса. (настраивается веб-сервером)

4 голосов
/ 28 мая 2009

Насколько я знаю, у сеанса браузера нет идентификатора.

Если вы имеете в виду сеанс сервера, он обычно сохраняется в файле cookie. Например, файл cookie, хранящийся в ASP.NET, называется «ASP.NET_SessionId».

2 голосов
/ 17 октября 2012

Для 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);
}
1 голос
/ 30 октября 2014

Вот короткая и приятная функция 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, и, я полагаю, также различных других серверных процессоров.

0 голосов
/ 09 января 2012

вы, вероятно, можете пропинговать сервер через ajax внутри javascript. Файл php может выглядеть примерно так:

<?php
session_start();
$id = session_id();
echo $id;
?>

Это вернет вам текущий идентификатор сессии. Было ли это то, что вы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...