Guest User

Untitled

a guest
Jan 14th, 2019
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. Facebook Registration - Check if username is available
  2. //this show the button and, once approved from user call process.php
  3. <div id="fb-login-wrapper">
  4. <div class="fb-login-button" onlogin="javascript:registerme();" size="medium" scope="publish_stream,email">Login</div>
  5. </div>
  6. <div id="fb-root"></div>
  7. <script type="text/javascript">
  8. window.fbAsyncInit = function() {
  9. FB.init({
  10. appId: '<?php echo $appId; ?>',
  11. cookie: true,
  12. xfbml: true,
  13. oauth: true,
  14. display:'popup'});
  15. };
  16. (function() {var e = document.createElement('script');
  17. e.async = true;e.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
  18. document.getElementById('fb-root').appendChild(e);}());
  19. function registerme(){
  20. FB.login(function(response) {
  21. if (response.status === "connected")
  22. {
  23. var alldata = {processthis: "yes"};
  24. $.colorbox({href:"process.php",data:alldata,onClosed:function(){ $("#fb-login-wrapper").show(); },onComplete:function(){FB.XFBML.parse(); }});
  25. }
  26. });
  27. }
  28. </script>
  29.  
  30.  
  31. <?php
  32.  
  33. //this is just to check what data I'm getting back, of course I will store these data on my database, but I want to check if the username is already taken.
  34.  
  35. if(isset($_SESSION['facebook_data']))
  36. {
  37. //registration data sent from receive_data.php file
  38. $userid = $_SESSION['facebook_data']["user_id"];
  39. $name = $_SESSION['facebook_data']["registration"]["name"];
  40. $first_name = $_SESSION['facebook_data']["registration"]["first_name"];
  41. $last_name = $_SESSION['facebook_data']["registration"]["last_name"];
  42. $email = $_SESSION['facebook_data']["registration"]["email"];
  43. $location = $_SESSION['facebook_data']["registration"]["location"];
  44. $gender = $_SESSION['facebook_data']["registration"]["gender"];
  45. $birthday = $_SESSION['facebook_data']["registration"]["birthday"];
  46. $username = $_SESSION['facebook_data']["registration"]["username"];
  47. $password = $_SESSION['facebook_data']["registration"]["password"];
  48.  
  49. //Now we have user data, we can store it in database or just prepare for output
  50. $facebookData = array('Facebook User ID'=>$userid,'Name'=>$name,'first_name'=>$first_name,'last_name'=>$last_name,'location'=>$location,'email'=>$email,'gender'=>$gender,'birthday'=>$birthday,'username'=>$username,'psw'=>$password);
  51.  
  52. //Output this data
  53. echo '<pre>';
  54. print_r($facebookData);
  55. echo '<pre>';
  56.  
  57. //distroy session
  58. session_destroy();
  59. }
  60. ?>
  61.  
  62. <?php
  63. require_once('config.php' );
  64.  
  65. if(isset($_POST["processthis"]) && $_POST["processthis"]=="yes")
  66. {
  67. $regFields='[{"name":"name"},
  68. {"name":"first_name"},
  69. {"name":"last_name"},
  70. {"name":"location"},
  71. {"name":"email"},
  72. {"name":"gender"},
  73. {"name":"birthday"},
  74. {"name":"username","description":"Username","type":"text"},
  75. {"name":"password"}]';
  76.  
  77. echo '<div id="registration_form" style="width:560px;height:330px;" align="center">
  78. <fb:registration
  79. fields=''.$regFields.''
  80. redirect-uri="'.$redirect_url.'receive_data.php"
  81. width="530">
  82. </fb:registration>
  83. </div>';
  84. }
  85. ?>
  86.  
  87. <?php
  88. require_once('config.php' );
  89.  
  90. session_start();
  91.  
  92. if(isset($_POST["signed_request"])){ //receive user data from facebook
  93. $signedresponse = parse_signed_request($_REQUEST["signed_request"], $appSect);
  94. if($signedresponse)
  95. {
  96. //Receive facebook data and redirect user to homepage with session variable
  97. $_SESSION['facebook_data'] = $signedresponse;
  98. header('Location: '.$redirect_url.'index.php');
  99. }
  100. }
  101.  
  102. //function to phrase signed data from facebook.
  103. function parse_signed_request($signed_request, $secret) {
  104. list($encoded_sig, $payload) = explode('.', $signed_request, 2);
  105. $sig = base64_url_decode($encoded_sig);
  106. $data = json_decode(base64_url_decode($payload), true);
  107.  
  108. if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
  109. die('Unknown algorithm. Expected HMAC-SHA256');
  110. return null;
  111. }
  112. $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
  113. if ($sig !== $expected_sig) {
  114. die('Bad Signed JSON signature!');
  115. return null;
  116. }
  117. return $data;
  118. }
  119.  
  120. function base64_url_decode($input) {
  121. return base64_decode(strtr($input, '-_', '+/'));
  122. }
  123.  
  124. ?>
Add Comment
Please, Sign In to add comment