Toon posts:

[PHP][Facebook API] session wordt niet vast gehouden

Pagina: 1
Acties:

Onderwerpen


  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 22-08 18:33
Ik gebruik facebook.php van de PHP SDK. Ik maak een Facebook instantie aan met de volgende code, waarbij USE_COOKIE op true staat:

PHP:
1
2
3
4
5
6
7
$facebook = new Facebook(array(
  'appId'  => APPLICATION_ID,
  'secret' => SECRET,
  'cookie' => USE_COOKIE,
  'req_perms' => REQUESTED_PERMISSIONS,
  'domain' => DOMAIN
));


Vervolgens check ik verderop of er een action is gezet, waarbij ik naar authorize ga als dat niet zo is. Dat werkt goed, hij vraagt netjes om de authorisatie die ik vraag.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
    if (!isset($_GET['action'])) {
        $applicationUrl = "http://" . $_SERVER["HTTP_HOST"] . "/?action=index";
        $authenticationUrl = "https://graph.facebook.com/oauth/authorize?client_id=" . APPLICATION_ID . "&redirect_uri=" . $applicationUrl . "&scope=user_photos";
        header("Location: " . $authenticationUrl);
        exit;        
    } else {
        if ($facebook->getSession()) {
            echo '<a href="' . $facebook->getLogoutUrl() . '">Logout</a>';
            include('app.php');
        } else {
            echo '<a href="' . $facebook->getLoginUrl() . '">Login</a>';
        }
    }


Als er wel een action is, dan gaat hij kijken of er een session is. Is dat niet zo, zie ik een login button.
Als ik daar vervolgens op klik, dan log ik netjes in en laat hij bijvoorbeeld de action index zien. Klik ik binnen die index weer ergens anders op, heeft hij opeens geen session meer, dus moet ik weer op login klikken, waarna hij weer inlogt en vervolgens krijg ik de volgende stap weer wel te zien.

Kortom, hij lijkt mijn session maar één stap te onthouden. Aangezien er geen complete werkende demo op internet staat, weet ik niet of er een fout in mijn code staat, of dat er wellicht ergens een parametertje verkeerd staat ingesteld. Wie heeft een idee?

iOS developer


  • HuHu
  • Registratie: maart 2005
  • Niet online
Waar staat je session_start()?

  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 22-08 18:33
Bovenaan, net onder error_reporting(E_ALL);

iOS developer


  • MueR
  • Registratie: januari 2004
  • Laatst online: 00:26

MueR

Moderator Devschuur®

is niet lief

Dan moet je gaan debuggen. Ga eens op elke pagina je sessionid en session content afdrukken, kijk of dat veranderd. Zo ja, heb je waarschijnlijk een verkeerde session lifetime of cookie domain.

Anyone who gets in between me and my morning coffee should be insecure.
Breng nu uw applicatie naar de kloot. Dat is veel beter! Nu samen met klootopslag. Voor maar €9,95. Doei doei!


  • BikkelZ
  • Registratie: januari 2000
  • Laatst online: 22-08 18:33
Hmm het semi recht geprutst met de volgende code{

PHP:
1
2
3
4
5
6
7
8
    if (isset($_GET['session'])) {
        $session_value = json_encode($_GET['session']);
        $session_value=trim($session_value,'"');
        $session_value=stripslashes($session_value);
        $session_parameter='&session='.urlencode($session_value);
    } else {
        $session_parameter='';
    }


Waarbij ik $session_parameter achter iedere link knal in mijn applicatie. Het voelt wel een beetje vies :$

----

Ik ga er eens mee aan de gang MueR

[Voor 4% gewijzigd door BikkelZ op 29-09-2010 10:49]

iOS developer


  • Cartman!
  • Registratie: april 2000
  • Niet online
Ik heb alleen maar dit nodig en dan werkt alles direct:

PHP:
1
2
3
4
5
6
7
8
9
10
11
if($this->_facebook->getSession()) {
    // doe je ding
}
else {
    $options = array();
    $options['req_perms'] = 'publish_stream,email';
    $options['next'] = 'http://www.jouwdomein.nl/pad/naar/pagina';
    $options['cancel_url'] = $options['next'];
    header('Location: ' . $this->_facebook->getLoginUrl($options));
    exit;
}


De session_start(); staat in m/'n bootstrap en de cookie op true in de construct van Facebook.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee