2014-09-05 2 views
0

사용자가 로그인했는지 확인하기 위해 PHP 세션 정보를 가져 오는 데 사용할 앱용 서비스를 만들었습니다. 서비스 코드는 다음과 같습니다.Angular.js 인증 서비스 : 리소스 응답 대기

angular.module('omApp') 
    .factory 'Auth', ['AuthResource', '$rootScope', '$location', (AuthResource, $rootScope, $location) -> 
    user = AuthResource.get() 

    # TODO: Setup permissions in database and load them 
    # permissions = AuthResource.get() 
    Auth = 
     user: user 
     signedIn: -> 
     user.id > 0 
     logout: -> 
     window.location = '/login/login.php' 

    $rootScope.signedIn = -> 
     Auth.signedIn() 
    $rootScope.authUser = Auth.user 

    return Auth 
] 

로그인 한 사용자가 필요한 컨트롤러의 경우, if not signedIn() then logout()과 같은 작업을 수행하려고합니다. 내 문제는,이 코드는 내 리소스가 실제로로드되기 전에 실행되므로 로그인 화면으로 리다이렉트됩니다. AuthResource.get()이 약속을 생성하지만,이 경우에는이를 사용하고 signedIn 및 logout 함수를 제공하는 방법을 알지 못합니다.

답변

0

내 제안은 $rootScope isLoggedIn 속성에 유지하고, 그들과 함께 작업, 그에 응답 값을 할당하고, 컨트롤러 사용에

$rootScope.$watch('isLoggedIn',function(){ 
// your logic goes here 
}) 
+0

나는 아직도 정식 응답하기 전에 검사를 수행 같은 문제가 PHP에서 제공됩니다. – Sean