如何在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 }";
在app/config/config.yml
中,在framework
部分下,必须有一个session
项:
framework:
# ...
session: ~
查看官方文档以了解如何配置会话存储:http://symfony.com/doc/current/reference/configuration/framework.html#session
看起来我找到了解决方案,我在你的代码之前在我的控制器中写了这个:
public function indexAction() {
$session = $this->get('session');
$session->start();
$url = $this->get('fb_provider')->getLoginUrl(); //my service, here execute your code
但是这让我很困惑
如果你想创建facebook提供商,使用这个bundle:
https://github.com/hwi/HWIOAuthBundle它提供简单的访问Facebook和其他36个提供商(谷歌,Twitter)。
这个包的安装非常快。
你也应该对这个bundle感兴趣:https://github.com/FriendsOfSymfony/FOSUserBundle