2016-01-07 117 views
0

我有一個應用程序使用JSON用戶API wordpress插件。 我有這項服務來驗證用戶cookie。首先我打電話給cookie名稱的API,然後我嘗試驗證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 cookie名稱的任何其他方法? 由於嵌套函數,有效性未定義。我該如何解決它?

回答

1

由於內isAuthenticated第一$http.get返回一個承諾,你應該這樣做,而不是:

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

它的工作原理。謝謝! –