Получить цикл при проверке файла cookie в angularjs

Это мой код на стороне клиента. Чего я пытаюсь добиться, совершенно ясно. Если у пользователя есть файл cookie, он аутентифицируется, в противном случае он перенаправляется на конечную точку аутентификации на сервере.

(function() {
  'use strict';

  angular
    .module('App', [
      'ui.router',
      'ngResource',
      'ngCookies'        ])
    .run(['$window', '$cookies', '$state', function($window, $cookies, $state) {

      if($cookies['cookie-app']) {
        console.log('authenticated');
      } else {
        $window.location.href = "http://" + $window.location.host + "/auth/facebook";
      }
    }]);
})();

Это код на стороне сервера, созданный с помощью Hapijs.

module.exports = function(request, reply) {

  if (request.auth.isAuthenticated) {
    console.log(request.auth.credentials.profile.raw);
    request.auth.session.set(request.auth.credentials.profile.raw);
    return reply.redirect('http://localhost:8080');
  }

  reply('Not logged in').code(401);
};

Файл cookie установлен правильно, но я не получаю true в if, тогда я получаю бесконечный цикл. мой сценарий следующий. nginx обслуживает файл angularjs и действует как обратный прокси-сервер для сервера hapijs.

У вас есть идеи, почему?


person Mazzy    schedule 16.04.2015    source источник
comment
Вы имеете в виду «но если я не получу правду»? И вам действительно нужно перенаправить пользователя? Разве вы не можете просто использовать ajax для установки файла cookie?   -  person wvdz    schedule 16.04.2015
comment
Я имею в виду, что условие никогда не разрешается как истинное, тогда клиент в цикле вызывает конечную точку сервера. Я установил cookie на стороне сервера.   -  person Mazzy    schedule 16.04.2015
comment
Авторизация происходит на стороне сервера. затем файл cookie сохраняется на стороне сервера, и клиент должен просто проверить его существование и ничего более   -  person Mazzy    schedule 16.04.2015
comment
В последний раз, когда я пытался использовать $cookies в Angular, меня это так раздражало, что я просто выбрал плагин jQuery для работы с ними. Так что я не знаю, может быть, $cookies немного глючит.   -  person wvdz    schedule 16.04.2015


Ответы (1)


Необходимо отключить флаг httpOnly в параметрах hapi-auth-cookie.

person Mazzy    schedule 18.04.2015