我正在使用Symfony 2.3中的FOSFacebookBundle,如the Integration with FOSUserBundle documentation中所述。并编辑security.yml
,运行代码,但我得到错误:
Warning: SessionHandler::write(): Parent session handler is not open in /var/www/my/app/cache/dev/classes.php line 407
所以我给了权限:
sudo chmod 777 -R app/cache
sudo chmod 777 -R app/logs
当我再次登录,然后退出页面时,我得到了同样的错误。
我看到这个https://github.com/symfony/symfony/issues/5868并更新了php。
但是这个问题没有解决我不知道为什么? 有谁知道请告诉我? security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
chain_provider:
chain:
providers: [fos_userbundle, my_fos_facebook_provider]
fos_userbundle:
id: fos_user.user_provider.username
my_fos_facebook_provider:
id: my.facebook.user
firewalls:
main:
pattern: ^/
fos_facebook:
app_url: "http://apps.facebook.com/xxxx/"
server_url: "http://symfony/app_dev.php/login"
login_path: /login
check_path: /loginFb
default_target_path: /
provider: my_fos_facebook_provider
form_login:
login_path: /login
check_path: /login_check
provider: fos_userbundle
logout: true
anonymous: true
access_control:
- { path: ^/secured/.*, role: [IS_AUTHENTICATED_FULLY] }
- { path: ^/.*, role: [IS_AUTHENTICATED_ANONYMOUSLY] }
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
答案 0 :(得分:10)
在github上的故障单中提到的问题是与PHP
相关的错误,所以在Symfony2方面没有做到这一点。
请考虑从当前的php 5.4.x
转移到较新的版本。
根据这个来了你应该至少使用> = php 5.4.11
请参阅this commit
答案 1 :(得分:1)
快速解决方案可能是:
logout:
invalidate_session: false
修改强>
请注意注销后不会销毁会话。 我会推荐@Tristan解决方案。