如何在Symfony2中启用会话?

时间:2014-08-12 14:09:24

标签: php facebook symfony session

如何在Symfony2中启用会话?我想使用Facebook登录,但是我收到错误消息:会话未激活,无法存储状态。 (500内部服务器错误 - FacebookSDKException)

我的代码:

FacebookSession::setDefaultApplication(APP_ID, APP_SECRET);

$helper = new FacebookRedirectLoginHelper(REDIRECT_URL, $appId = NULL, $appSecret = NULL);
echo '<a href="' . $helper->getLoginUrl() . '">Login with Facebook</a> | ';

try {
    $session = $helper->getSessionFromRedirect();
} catch (FacebookRequestException $ex) {
    echo "{ FacebookRequestException }";
} catch (Exception $ex) {
    echo "{ Exception: }";
}

echo ( isset( $session ) ) ? "{ OK! }" : "{ NOPE }";

3 个答案:

答案 0 :(得分:2)

app/config/config.yml framework部分下,您必须拥有session项:

framework:
    # ...
    session: ~

查看官方文档,了解如何配置会话存储:http://symfony.com/doc/current/reference/configuration/framework.html#session

答案 1 :(得分:2)

看起来我找到了解决方案,我在你的代码之前在我的控制器中写了这个:

public function indexAction() {
    $session = $this->get('session');
    $session->start();
    $url = $this->get('fb_provider')->getLoginUrl(); //my service, here execute your code

但这让我很困惑

答案 2 :(得分:0)

如果您想创建Facebook提供商,请使用此捆绑包:

https://github.com/hwi/HWIOAuthBundle

它提供了对Facebook和其他36个提供商(Google,Twitter)的简单访问。

此捆绑包的安装非常快。

你也应该对这个包感兴趣: https://github.com/FriendsOfSymfony/FOSUserBundle