2014-10-20 3 views
0

사용자를 인증하는 데 Facebook 앱을 사용하고 있지만 사용자가 Facebook에 로그인하지 않은 경우 (FB.getLoginStatus()으로 확인) 로그인 할 수있는 버튼을 표시합니다. 문제는 팝업이 항상 차단된다는 것입니다. 왜 페이스 북 로그를 ng-click에 등록했는지 모르겠다.Facebook 로그인 팝업 차단

<button type="button" ng-click="login()">Log in via Facebook</button> 

    ... 

    $scope.login = function() { 
      FB.getLoginStatus(function(response) { 
       if (response.status === 'connected') { 
        $scope.userId = response.authResponse.userID 
        loginSuccess() 
       } else 
        FB.login(function(response) { 
         if (response.authResponse) { 
          $scope.userId = response.authResponse.userID 
          loginSuccess() 
         } else { 
          alert('You need to log in and authorize the app, otherwise you won\'t be able to take the quiz!') 
         } 
        }) 
      }) 
     } 

도움이 필요하십니까?

답변

4

FB.getLoginStatus은 사용자가 권한이 있는지 확인하고 사용자 토큰을 새로 고치려면 페이지로드시 사용해야합니다. 당신이 바로 FB.init 후 사용 그가 로그인 한 경우 사용자 ID를 저장할 수 있습니다.

FB.login 사용자 상호 작용에 직접 사용할 수 있어야합니다, 당신은 비동기에서 사용하는 (!) 콜백 FB.getLoginStatus의 기능이 아니라 직접 사용자가 버튼을 클릭합니다. 예

: http://www.devils-heaven.com/facebook-javascript-sdk-login/ 수비에서

+0

내가 SDK가 작동하는 방법의 기본 예제 중 하나 생각이 하나 같이 조각을 사용하여 위의 짧은 가능한 로그인 코드를 표시합니다 -이 언급 한 이유로 실제 앱으로는 적합하지 너의 대답에, 비록 – Igy