annotate default/assets/vendors/theme-widgets/vendor/mute/facebook/example/server-side-logout.php @ 0:1d038bc9b3d2 default tip

Up:default
author Liny <dev@neowd.com>
date Sat, 31 May 2025 09:21:51 +0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
1 <?php
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
2
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
3 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
4 * Logging Users out of your App
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
5 *
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
6 * @author Xavier Barbosa
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
7 * @since 13 February, 2013
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
8 * @link https://developers.facebook.com/docs/howtos/login/server-side-logout/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
9 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
10
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
11 use Mute\Facebook\App;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
12
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
13 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
14 * Default params
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
15 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
16
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
17 $app_id = "YOUR_APP_ID";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
18 $app_secret = "YOUR_APP_SECRET";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
19 $my_url = "YOUR_LOGOUT_URL";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
20
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
21 session_start();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
22
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
23 /**
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
24 * The process
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
25 **/
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
26
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
27 $app = new App($app_id, $app_secret);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
28
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
29
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
30 $code = $_REQUEST["code"];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
31
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
32 if($_SESSION['state'] && ($_SESSION['state'] === $_REQUEST['state'])) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
33 $params = $app->getOAuth()->getAccessToken($code);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
34 $_SESSION['access_token'] = $params['access_token'];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
35
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
36 $user = $app->get('me', array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
37 'access_token' => $params['access_token'],
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
38 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
39 echo("Hello " . $user->name);
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
40
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
41 // Logout button code added below
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
42 echo "<br><a href='logout.php'>Click to log out</a>";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
43 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
44 else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
45 echo("The state does not match. You may be a victim of CSRF.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
46 die;
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
47 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
48
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
49 $token = $_SESSION["access_token"];
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
50 if($token) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
51 $result = $app->delete('me/permissions', array(
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
52 'access_token' => $token,
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
53 ));
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
54 if($result) {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
55 session_destroy();
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
56 echo "User is now logged out.";
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
57 }
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
58 } else {
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
59 echo("User already logged out.");
1d038bc9b3d2 Up:default
Liny <dev@neowd.com>
parents:
diff changeset
60 }