如何在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 }";
答案 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