【发布时间】:2011-12-08 04:08:31
【问题描述】:
我正在尝试将我现有的 php 网站与 Facebook 登录功能集成。我目前有一个简单的登录注册用户名、密码和用于激活的电子邮件,它们的详细信息存储在 MYSQL 数据库中。我想为 Facebook 用户添加额外的登录权限。我担心如何将我当前的登录访问与新的 facebook 访问集成。我的主要想法是,我的所有页面都要求用户登录,并且我使用 cookie 来存储会话变量,例如我用来在页面上构建内容的昵称。
我对我在网络上研究的许多方法感到困惑,有些方法现在已经过时了,有些方法似乎只能解决一半。这三个不断重复发生。
A) Login.php、Register.php 和 fbReg.php login.php 和 register.php 在使用 fb login/register 登录以创建会话并将身份验证传递给 fbReg.php 时出现,但在页面重定向后它只是停在那里并出现空白屏幕。
(来自 Register.php 的 sn-p)
<script type="text/javascript">
FB.init({appId: '<?php echo $fb_app_id; ?>', status: true,
cookie: true, xfbml: true});
<?php
if ($errors == 0) {
?>
$('#form_hidden').hide();
<?php } else { ?>
checkInput('username');
checkInput('email');
checkInput('lastname');
checkInput('firstname');
checkInput('password');
checkInput('password2');
<?php } ?>
</script>
B) 旧版连接身份验证 http://developers.facebook.com/docs/authentication/connect_auth/ 使用上面的链接,我构建了一些测试脚本只是为了查看身份验证是否有效。幸运的是,在我的网站上,我有第三方广告或网络框架,但按照信中的步骤构建 interstitial_page 并从我的主登录页面重定向页面。但是我不断收到一个空会话。
(来自php登录页面的sn-p)
$api_key = "YOUR_API_KEY";
$interstitial_page = "YOUR_SECURE_URL"; //URL with no 3rd party apps
$url='http://www.facebook.com/login.php?api_key=' . $api_key
. '&session_version=3&next=' . urlencode($interstitial_page)
. '&v=1.0&return_session=1&fbconnect=1'
. '&cancel_url=' . urlencode($interstitial_page);
echo "Welcome to the Old Auth flow";
echo "<p>";
echo("<a href='" . $url . "'>"
. "<img src='http://static.ak.facebook.com/images/"
. "devsite/facebook_login.gif'></a>");
C) OAuth 2.0 协议 http://developers.facebook.com/docs/authentication/ 当我使用以下脚本再次使用它时:
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL
我尝试使用它来捕获我的新 facebook 站点用户的用户信息并将其存储到 MySQL 数据库,然后将此经过身份验证的 facebook 访问与“正常”Web 访问用户会话集成,因为它具有关联的会话变量,但未能成功。使用了用户体验。
任何帮助将不胜感激,我目前正在苦苦挣扎。
谢谢迈克尔
我在 fbReg.php 上得到一个空白屏幕
【问题讨论】:
标签: authentication login oauth facebook legacy