【发布时间】:2011-09-30 17:54:39
【问题描述】:
我正在通过 Facebook 开发人员文档中发布的简单示例连接到 Facebook API
$code = $_GET["code"];
if(empty($code)) {
// Really long scope, but I've tested it, and there aren't any errors here.
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id .
"&redirect_uri=" . urlencode($my_url) .
'&scope=email,read_stream,publish_stream,read_mailbox,read_requests,create_event,
manage_pages,publish_checkins,manage_friendlists,read_friendlists,user_about_me,
user_activities,user_birthday,user_checkins,user_education_history,user_events,
user_hometown,user_interests,user_likes,user_location,user_photo_video_tags,
user_photos,user_relationship_details,user_relationships,user_religion_politics,
user_status,user_videos,user_website,user_work_history';
echo "<script> window.location.href='" . $dialog_url . "'</script>";
}
然后我使用回调来获取访问令牌并运行检查以查看用户是否已经在我的数据库中。但是,我注意到,如果我登录到不同的 Facebook 帐户并使用存储在我的数据库中的登录名来登录用户,那么当它进行身份验证时,它是针对当前登录的 Facebook 用户的。
我的问题是:有没有办法改变上述身份验证代码以使用存储在我的数据库中的 Facebook 用户 ID 并专门对该用户进行身份验证。
例如,如果具有活动 Facebook 会话的用户不是登录到我的站点的用户,它将结束当前会话(注销 Facebook)并请求用户登录到 Facebook。
【问题讨论】: