2012-03-26 3 views
5

나는 한 가지를 이해할 수 없다 ..Facebook API를 통해 로그인 한 사용자를 식별하는 방법은 무엇입니까?

내 웹 사이트에는 facebook의 api JS SDK에있는 FB.login 메서드가있는 버튼이있다.

사용자가 처음으로 내 웹 사이트를 방문하면 버튼을 클릭하여 페이스 북의 프로필에서 데이터를 가져온 다음 데이터베이스의 내 서버에서이 ID를 가진 사용자가 있는지 확인합니다. 아니요 - 새 행을 씁니다. 또한 내 웹 사이트에서 사용자 프로필을 만듭니다.

다음에 사용자가 다음 번에 우리 웹 사이트를 방문 할 때 (그리고 그가 로그인하지 않은 경우 버튼을 클릭 할 때), 우리 웹 사이트에서 그의 프로필과 결합 할 사람을 식별하는 방법에 관한 질문입니까? 예를 들어, 그에게 그의 프로필을 보여 주거나 그 안에 무엇이든 바꿀 수 있다고 ...

보통 우리는 데이터베이스에서 암호와 사용자의 로그인을 비교합니다. 그럴 가능성은 없습니다. AccessToken은 항상 변경됩니다. 생각한 것만으로 사용자의 FB id를 확인한 다음, 아마도 누군가 FB ID를 대체하고 프로필에 입력 할 수있을 것입니다. 그렇지 않습니까?

이 경우 어떤 트릭이 사용됩니까?

답변

6

사용자가 방문하는 사이트 처음 또는 항상 FB.login 방법을 사용하지 관계없이합니다. 이 메소드는 사용자가 애플리케이션과 관계가 있는지 확인하고 사용자가 앱을 수락하면 액세스 토큰을 제공합니다.

페이스 북 로그인을 사용하여 사용자를 인증 할 때 데이터베이스의 사용자 등록자에 암호가없는 경우 페이스 북 계정 만 웹 사이트 프로필과 연관시킬 수 있습니다. 페이스 북 ID는 서버 측의 FB.login 메소드 또는 facebook docs과 같은 자바 스크립트를 통해 제공되는 accesstoken을 사용하여 얻을 수 있습니다.

FB.login(function(response) { 
if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
} else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}); 

응답 개체에서 facebook id (response.id)를 얻을 수 있습니다.

1

Facebook ID를 사용하여 데이터베이스의 사용자를 식별 할 수 있습니다. 이는 각 Facebook 사용자마다 고유합니다.

+4

누구든지이 ID를 대체하여 내 웹 사이트에서 해당 사용자의 ID 프로필을 가져올 수 있습니까? – Denis

3

그래프 API https://graph.facebook.com/me?access_token=USER_ACCESS_TOKEN을 쿼리하면 UID를 얻은 다음 DB와 비교합니다. Javascript API를 사용하고 있으므로 연결된 사용자의 UID를 가져 오기 위해 FB.getLoginStatus 메소드를 사용해야합니다. FB.init와 SDK (: 진정한 상태를) 초기화 할 때

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

이 방법은 기본적으로 실행됩니다. 사이트에서 이미 연결된 사용자를 인식 할 수 있습니다.

https://developers.facebook.com/docs/reference/javascript/FB.init/

+0

고마워요! :) – Denis

+0

자신의 상태를 얻음으로써 사용자를 인식하려고하면 UX는 개인화 된 컨텐츠로 크게 향상됩니다. – Alexcode

관련 문제