2016-01-07 2 views
0

У меня есть приложение, использующее JSON API-интерфейс Wordpress. У меня есть эта служба для проверки cookie пользователя. Сначала я называю API для имени cookie, тогда я пытаюсь проверить cookie.AngularJS - Возвращаемое значение службы

angular.module('app').service('AuthService', AuthService); 

AuthService.$inject = ['$http']; 
function AuthService($http) { 
return { 
    isAuthenticated: isAuthenticated 
}; 
function isAuthenticated(){ 
    return $http.get('http://somesite/pCookie.php') 
     .then(function (response) { 
     var authCookieName = response.data.response; 
     var authCookie = getCookie(authCookieName); 
     var validity;    
     $http.get('http://somesite/api/user/validate_auth_cookie/?cookie='+authCookie) 
      .then(function (response) { 
       validity = response.data; 

      }); 

     return validity; 
    }); 
} 
} 

Проблемы: есть ли другой способ, которые обеспечивают LOGGED_IN_COOKIE имя куки? Действительность не определена из-за вложенных функций. Как я могу это решить?

ответ

1

Поскольку первый $http.get в isAuthenticated возвращает обещание, вы должны сделать это вместо:

function isAuthenticated() { 
    return $http.get('http://somesite/pCookie.php') 
    .then(function (response) { 
     var authCookieName = response.data.response; 
     var authCookie = getCookie(authCookieName); 
     return authCookie; 
    }) 
    .then(function (authCookie) { 
     return $http.get('http://somesite/api/user/validate_auth_cookie/?cookie='+authCookie); 
    }) 
    .then(function (response) { 
     return response.data; 
    }); 
} 
+0

Он работает. Благодаря! –

Смежные вопросы