每次都创建facebook对象?

时间:2012-12-17 11:01:04

标签: php facebook facebook-graph-api facebook-php-sdk

我有一个登录页面,会根据他们的Facebook登录详细信息将用户登录到我的webapp。

然后我创建一个会话来记住他们是谁。

我想知道的是,我应该在我的webapp的每一页上创建和/或检查facebook凭证,还是应该只使用我在开始时创建的会话来登录?

例如,一旦他们登录,我想允许他们从我的应用程序发布消息到他们自己的Facebook墙上。我是否应该通过重新创建facebook对象来检查登录凭据,或者我应该只使用已存在的会话中存储的登录详细信息并使用它发布到他们的Facebook墙上?

更新

所以基本上,我是否应该每次使用以下代码作为模板进行与Facebook相关的操作,例如发布到他们的墙上,登录等等?

<?php

    session_start();

    # The facebook library
    require_once("facebook.php");

    # Create facebook object
        $config = array();
        $config['appId'] = 'appId goes here';
        $config['secret'] = 'secret goes here';
        $config['fileUpload'] = false; // optional

        $facebook = new Facebook($config);  

    # Check if user has active facebook session
    $user_id = $facebook->getUser();

        if ($user_id) {

            try {

                // do something here

            } catch (FacebookApiException $e) {

                error_log($e);
                $user_id = null;

                exit;

            }

        } else {

            $loginUrl = $facebook->getLoginUrl();
            header("Location: ".$loginUrl);
    }

&GT;

2 个答案:

答案 0 :(得分:1)

我会在每个请求中检查用户,以防您有可能允许用户自己创建会话的脆弱代码。

答案 1 :(得分:0)

我会在每次请求时检查用户。如果你想通过facebook api发帖,你需要有一个有效的facebook access_token。如果您检查每个页面(与js SDK结合使用),那么用户将再次登录到您的站点,而不是您收到访问令牌错误并且不得不让他们再次登录

相关问题