Войти через Facebook Connect 2 - PullRequest
       14

Войти через Facebook Connect 2

0 голосов
/ 26 февраля 2012

Обновление:

Вот страница, на которую пользователи, которые нажимают мой регистр с помощью кнопки «Фейсбук», отправляются на.

<?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
}

?>

Что мне нужно сделать сейчас, это добавить кнопку в мой индексв котором написано «Логин», если они нажимают на него, он должен попытаться войти на мой сайт с помощью своего фейсбука, если у пользователя нет учетной записи, он должен перенаправить его в мой сценарий регистрации, иначе он должен автоматически войти в систему и перенаправить наэкран входа в систему.

Информация, которую вам может понадобиться знать:

Поле пароля для входа в систему зашифровано с помощью md5

Любая помощь будет принята, если вам нужна дополнительная информацияпросто спросите:)

-Brad


В моем предыдущем вопросе Facebook регистрация подключения Я попросил помочь с настройкой моей страницы регистрации.Что ж, теперь я сделал это успешно, однако теперь мне нужно сделать это, чтобы пользователь мог также войти в систему с Facebook.Для этого я надеялся использовать кнопку входа в FaceBook, и если они нажмут кнопку «Войти» и обнаружат, что они не зарегистрированы, они будут перенаправлены на страницу регистрации, в противном случае они войдут в систему.

Какой код я бы использовал (пример)?Вам нужно знать какую-либо специальную информацию?

1 Ответ

1 голос
/ 26 февраля 2012

Посмотрите на этот пост, который охватывает то, что вы пытаетесь достичь. Интеграция с Facebook на PHP-сайте

...