我的主页上有标准的 Facebook 登录按钮,我不希望人们仅在用户单击登录按钮时才使用其 Facebook 帐户自动登录我的网站。
如果用户未登录 Facebook,则会出现一个弹出窗口,询问他的凭据,然后他将被重定向到loggedin.html
在那之后。
<div id="fb-root"></div>
<fb:login-button perms="email"></fb:login-button>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true
});
FB.Event.subscribe('auth.login', function() {
window.location = "loggedin.html";
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
如果用户已经登录 Facebook,当他单击按钮时,弹出窗口会立即出现并消失,我对此表示同意。但用户没有被重定向到loggedin.html
。我怎样才能做到这一点 ?
如果您使用PHP SDK,则可以使用以下代码:
require_once 'path/to/facebook.php';
define('A_ID', '*YOUR APP ID*');
define('A_SECRET', 'YOUR APP SECRET');
$facebook = new Facebook(array('appId' => A_ID, 'secret' => A_SECRET, 'cookie' => true));
$userId = $facebook->getUser();
if (!$userId):
?>
<!-- HTML to show if the $userId isn't available (user isn't logged in) -->
<?php
else:
?>
<!-- HTML to show if the $userId is available (user is logged in)-->
<?php
endif;
理想情况下,您应该使用 PHP SDK,因为与使用 JS SDK 插入数据相比,它可以让您更好地控制数据及其显示方式。
Facebook 这里有 PHP SDK 的参考:Developers.facebook.com/docs/reference/php/ https://developers.facebook.com/docs/reference/php/
JavaScript SDK 参考在这里:Developers.facebook.com/docs/reference/javascript/ https://developers.facebook.com/docs/reference/javascript/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)