AngularJS: невозможно прочитать значение сеанса

  • Сеанс устанавливается сервером, когда пользователь входит в систему

Я хочу получить это значение в моем интерфейсе angular, но он говорит undefined

Соответствующий код

   $scope.logout = function () {
        console.log('session value', $cookieStore.get('session'));
    }

и мое приложение также настроено на включение ngCookies

var app = angular.module('myApp', ['ngCookies']);

когда я запускаю свое приложение, я вижу

session value undefined 

Однако я могу видеть сеанс в Chrome Dev Tools

enter image description here

Что мне не хватает?

Ответ 1

Что мне не хватает?

Сервер устанавливает cookie как файл cookie сеанса (HttpOnly). Это означает, что вы не можете получить доступ к этому файлу cookie на клиенте. Клиент будет отправлять cookie на сервер по каждому запросу, но клиент не имеет доступа к его значению. Это само определение cookie HttpOnly. Если вы хотите получить доступ к этому значению cookie на клиенте, вы должны изменить серверную часть script, чтобы при настройке файла cookie он не добавлял к нему флаг HttpOnly. Очевидно, что это связано с соответствующим отказом от уязвимости безопасности, которую вы можете открыть на своем сайте, в зависимости от цели и конкретного значения, хранящихся в этом файле cookie.

Ответ 2

UPDATE

Стоит отметить, что $cookieStore устарел и теперь для доступа к куки файлам следует использовать ngCookies (см. ngCookies).