2014-09-16 3 views
0

현재 페이스 북의 php를 사용하여 내 웹 사이트에 로그인하십시오. 그들이 가입 할 때, 나는 그들의 이메일 주소를 페이스 북에서 가져온 것을 저장하고있다. 페이스 북을 통해 웹 사이트에 로그인하고 로그인 할 때 fb 이메일은 데이터베이스에있는 이메일과 일치하며 일치하면 사용자가 로그인됩니다.페이스 북으로 로그인 Php Sdk를 반품하는 사용자

하지만 이는 좋은 습관이 아닙니다. 나중에 사용자가 이메일을 변경하면 로그인 할 수 없으며 사용자가 이메일 주소를 다른 사람에게 변경 한 경우 로그인하게됩니다.

사용자 액세스 토큰을 저장할 수 있지만 그것은 영구적이지 않습니다. 더 나은 보안으로 어떻게이 일을 성취 할 수 있는지 아는 분은 큰 도움이 될 것입니다.

+1

귀하의 사이트에 이메일 권한을 거부 할 수 있습니다 명심 ... 그래서 그들을 식별하기 위해 자신의 FB 아이디 (응용 프로그램 범위의 사용자 ID)를 사용하여, 그리고 그것만. (그리고 정수로 저장하지 않고 텍스트로 저장하고 처리하십시오.) – CBroe

답변

2

사용자 FB UID을 저장하고 사용할 수 있습니다. 이 UID는 모든 사용자에게 영구적이며 고유합니다.

또한 시스템에 UID가없는 경우 전자 메일로 DB에서이 사용자를 찾을 수 있습니다. 주어진 이메일을 가진 사용자가 발견되면 링크 "user_id_in_your_system"과 UID를 저장할 수 있습니다. 다음 로그인은 주어진 UID로 처리됩니다.

일부 사용자는 심지어 모든 FB 사용자로부터 이메일을받지 않습니다

+0

작은 추가 : 이제는 "app scoped id"가 될 것이므로 모든 사용자마다 고유 한 ID가되지만 다른 앱에서는 다른 ID를 얻을 수 있습니다. 더 이상 글로벌 ID를 얻지 못합니다. 대답은 정확합니다. :) – luschn

+0

// PHP 사용자 인터페이스에서 // $ userId = $ facebook-> getUser();를 사용하여 사용자 ID를 얻고 있습니다. –

+0

Uday Hiwarale, 예. @luschn, FB는 다음과 같이 말합니다. __ 동일한 사용자 ID를 여러 앱에 매핑하거나 앱 간 프로모션을 실행해야하는 경우 Business Mapping API라는 새로운 API를 추가했습니다. 이렇게하면 동일한 비즈니스가 해당 앱을 모두 소유하고있는 경우 로그인 된 사용자의 ID를 앱간에 매핑 할 수 있습니다. 교차 프로모션 구현에 대해 자세히 알아보기 __ -https : //developers.facebook.com/docs/apps/upgrading –

관련 문제