通过脸书登录连接2
更新:通过脸书登录连接2
这里是用户点击我的注册Facebook的按钮发送到。
<?php
define('FACEBOOK_APP_ID', 'XXXX');
define('FACEBOOK_SECRET', 'XXXX');
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
// decode the data
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
error_log('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig
$expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
if ($sig !== $expected_sig) {
error_log('Bad Signed JSON signature!');
return null;
}
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
if ($_REQUEST) {
$response = parse_signed_request($_REQUEST['signed_request'],
FACEBOOK_SECRET);
$uname = $response["registration"]["username"];
$rname = $response["registration"]["name"];
$seckey = $response["registration"]["seckey"];
$email = $response["registration"]["email"];
$password = $response["registration"]["password"];
$gender = $response["registration"]["gender"];
$ip_last = $_SERVER['REMOTE_ADDR'];
$time = time();
$sessionKey = 'RevCMS-'.rand(9,999).'/'.substr(sha1(time()).'/'.rand(9,9999999).'/'.rand(9,9999999).'/'.rand(9,9999999),0,33);
$newgender = substr("$gender", -4, 1);
$newpass = md5($password); //This will encrypt the password with md5, if you're not using RevCMS ensure your CMS uses md5 or change it.
$newseckey = md5($seckey); //This will encrypt the security key with md5.
// Connecting to database
mysql_connect('localhost', 'root', 'habbo123');
mysql_select_db('phoenix3');
// Inserting into users table
$result = mysql_query("INSERT INTO users (id, username, real_name, password, mail, auth_ticket, rank, credits, vip_points, activity_points, activity_points_lastupdate, look, gender, motto, account_created, last_online, online, ip_last, ip_reg, home_room, respect, daily_respect_points, daily_pet_respect_points, newbie_status, is_muted, mutant_penalty, mutant_penalty_expire, block_newfriends, hide_online, hide_inroom, mail_verified, vip, volume, seckey)
VALUES
(NULL, '$uname', '$rname', '$newpass', '$email', '$sessionKey','3', '10000', '0', '1000', '0', '-', '$newgender', 'I <3 Tropical-Resort', '$time', '$time', '0', '$ip_last', '$ip_last', '8', '0', '3', '3', '0', '0', '0', '0', '0', '0', '0', '1', '0', '100', '$newseckey')");
if($result){
//Begin redirect to logged in page
header('Location:http://tropical-resort.org/me');
// End redirect
}
else
{
//Un-hash this code if you're getting errors, if the error is to do with mysql it will tell you whats wrong. (Be sure to hash the redirect if you un-hash this.)
#echo mysql_error();
#echo "<br>"; echo "\"$newgender\"";
// Heres the redirect page, if you like you could send them to an error page because they'll only be sent this link if there was an error registering them.
header('Location:http://tropical-resort.org/index');
}
}
else
{
//$_REQUEST was left empty, this means at least 1 field was blank however it's more than likely they tried to go direct to this page.
?><script>alert("You left a field out, Please click back and make sure to fill everything in.")</script>
<form>
<input type="button" value="Go Back" onClick="history.go(-1);return true;">
</form>
<?php
}
?>
我需要什么,现在得到完成的就是添加一个按钮,我的索引,上面写着登录,如果他们点击它,它应该尝试登录到我的网站与他们的Facebook,如果用户不具有帐户它应该将它们重定向到我的注册脚本,否则它应该自动登录并重定向到登录屏幕。
信息,你可能需要知道:
密码字段登录使用MD5加密
任何帮助,将不胜感激,如果你需要任何更多的信息只是问:)
-Brad
在我刚才的问题facebook registration connect我要求帮助建立我的注册页面。那么我现在已经成功完成了,但现在我需要做到这一点,所以用户也可以用facebook登录。要做到这一点,我希望使用FaceBook登录按钮,如果他们点击登录,并且它检测到他们没有注册,它将重定向到注册页面,否则它将登录他们。
我将使用什么代码(示例) ?你需要知道任何特殊信息?
看看这篇文章,其中涵盖了你想要实现的目标。 Facebook Integration in a PHP site
我发现很混乱,我我要用我的注册码更新我的帖子,然后如果可能的话,你能否告诉我如果要在用户注册时添加到索引中以便让它登录。感谢:) – 2012-02-25 22:23:35
我认为你应该考虑在进入代码之前将其分解成逻辑。检查Facebook会话(甚至可以在Facebook Connect JS上执行此操作,而无需在PHP中执行任何操作)。如果会话存在,验证会话以确保您可以检索用户的访问令牌,然后使用它来查找他们的UID(可以对https://graph.facebook.com/me/?fields=id&access_token= { access_token},看看你的UID是否存在于你的用户表中,如果它存在,则它们被注册并进入认证方法,如果它不存在,它们就不会被注册并处理它 – 2012-02-25 22:32:01
我理解逻辑谢谢,但是我不太清楚我会如何去实际编码...我愿意付出的帮助看到,因为这其实很重要! – 2012-02-25 22:35:05
可能重复的[Facebook在PHP网站集成](http://facebook.*.com/questions/7775079/facebook-integration-in-a-php-site) – DMCS 2012-02-25 22:23:47