我正在使用 FOSUserBundle 和 FOSUserFacebookBundle 对我的用户进行身份验证。问题是当我访问我的 /login 页面时。我有两个带有用户名和密码的文本字段。当我输入我的用户名和密码时,我收到以下错误:
The Facebook user could not be retrieved from the session.
这是一个非常奇怪的错误,因为我通过表单而不是通过 facebook 登录用户,但就好像我通过 facebook 登录用户一样。所以我玩弄了我的源代码,这是我的 security.yml/firewall 设置:
firewalls:
main:
pattern: ^/.*
form_login:
login_path: /login
check_path: /login_check
provider: fos_userbundle
fos_facebook:
app_url: "http://apps.facebook.com/myapp/"
server_url: "http://localhost/Symfony/web/app_dev.php"
login_path: /login
check_path: /login_check
default_target_path: /
provider: my_fos_facebook_provider
anonymous: true
logout:
path: /logout
target: /
handlers: ["fos_facebook.logout_handler"]
#http_basic:
# realm: "Secured Demo Area"
login:
pattern: ^/login$
security: false
我担心的是 /login_check 会一直检查 facebook 会话是否存在,我真的不想要。当我更改 fos_facebook 的 login_path 和 check_path 时,一切正常。知道可能导致此问题的原因以及如何解决此问题吗?