Facebook登录页面和缓存

时间:2015-04-08 15:58:25

标签: mysql facebook caching logging cookies

我的网站上有Facebook登录 但我需要请求允许在我的用户墙上发帖。

我在google上发现了很多使用示波器的例子,但它们与我的版本太不相同了,我不知道在哪里放它

这是代码:

<?php
session_start();
// added in v4.0.0
require_once 'autoload.php';
require 'functions.php';
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;
// init app with app id and secret
FacebookSession::setDefaultApplication( 'APPID','APPSECURE' );
// login helper with redirect_uri
    $helper = new FacebookRedirectLoginHelper('http://www.bestparty.altervista.org/APP/facebook/fbconfig.php' );
try {
  $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
  // When Facebook returns an error
} catch( Exception $ex ) {
  // When validation fails or other local issues
}
// see if we have a session
if ( isset( $session ) ) {
  // graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // get response
  $graphObject = $response->getGraphObject();
        $fbid = $graphObject->getProperty('id');              // To Get Facebook ID
        $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name
        $femail = $graphObject->getProperty('email');   
    /* ---- Session Variables -----*/
        $_SESSION['FBID'] = $fbid;           
        $_SESSION['FULLNAME'] = $fbfullname;
        $_SESSION['EMAIL'] =  $femail;
         checkuser($fbid,$fbfullname,$femail);
    /* ---- header location after session ----*/


        $cookie_name = 'FBID';
        $cookie_value = $fbid;
        setcookie($cookie_name, $cookie_value, time() + (86400 * 30), '/'); 
        $cookie_name2 = 'FULLNAME';
        $cookie_value2 = $fbfullname;
        setcookie($cookie_name2, $cookie_value2, time() + (86400 * 30), '/'); 

  header("Location: ../gestaccount.php");
} else {

  $cookie_name = 'FBID';
        $cookie_value = $fbid;
        setcookie($cookie_name, $cookie_value, time() + (86400 * 30), '/'); 
  $loginUrl = $helper->getLoginUrl();
 header("Location: ".$loginUrl);
}
?>

此外:

  1. 我可以在mysql中保存访问令牌以便将来使用它吗?
  2. 为什么我在缓存中保存的数据只会在关闭浏览器之前保留?

1 个答案:

答案 0 :(得分:0)

1,您可以按照您喜欢的方式存储访问令牌。只要它是安全的,并且您可以在过期/更新/扩展访问令牌的情况下更新它们,它应该没问题。 2,这有点不清楚,你是否正确设置和处理cookie?