내 사용자는 Doctrine에서 많은 관계 설정을했는데 특히 문제가 많은 것으로 보입니다. 각 사용자는 여러 명의 회원을 가질 수 있으며 각 멤버쉽에는 회원 유형이 있습니다 .사용자 관계로 인해 Symfony2에서 내 세션이 손상됩니다.
그러나 어떤 이유로 회원 자격을로드 할 때 내 세션이 누크 인 것 같습니다. 로그인해야하고 "내 계정"페이지가 표시되어야합니다.하지만 페이지를 새로 고치면 다시 로그인으로 전송됩니다. 화면. 내 세션은 내가 어떻게되는지를 확인했습니다 데이터베이스에 저장되고이 제가 보는 것입니다 :
이- 세션 시작은 빈
- I 로그인하지만 확실히 내가로 리디렉션 할 멤버십을로드하지 않는 페이지
- 세션에 이제 사용자 개체와 관계에 대한 모든 정보가 포함됩니다.
- 회원 자격을로드하는 "내 계정"을 방문하면 올바르게 표시됩니다.
- 세션은 핵 공격하고 단계 있다는 1
- 내가 페이지를 새로 고침 나는 내 자신의 사용자 제공자를 정의한
로그인 페이지로 다시 전송받을 지금 내가 만약 내가 발견되었습니다 refreshUser에서 각 멤버십의 멤버십 유형을 null로 설정하면 작업이 시작되어 세션이 그 관계에 문제가 있다고 생각할 수 있습니다.
저는이 문제에 대한 해결책을 찾기 위해 정말 고심하고 있습니다. 도움이된다면 정말 감사하겠습니다.
EDIT : 좀 더 실험을하고 파일 세션으로 전환하면 모든 것이 작동하기 때문에 데이터베이스에 세션을 저장하는 것과 관련이 있어야합니다. Symfony Cookbook에서 가이드를 사용하여 스위치를 만들었습니다. 참고로 여기 내 config.yml에서 관련 비트를하다 : 그들에 대해 다른
framework:
session:
default_locale: %locale%
auto_start: true
storage_id: session.storage.pdo
parameters:
pdo.db_options:
db_table: session
db_id_col: session_id
db_data_col: session_value
db_time_col: session_time
session.storage.pdo:
class: Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage
arguments: [@pdo, %session.storage.options%, %pdo.db_options%]
pdo:
class: PDO
arguments:
dsn: "mysql:dbname=%database_name%;host=%database_host%"
user: %database_user%
password: %database_password%
모두는 PdoSessionStorage
안녕하세요 헨릭, 그럴 것 같지 않습니다. 현재 나의 equals check는 단지 id를 비교하는 것입니다. (나중에 개선하기를 바랄 것입니다.) 나는 모든 응답을 로깅 해봤습니다. 그리고 항상 true를 리턴합니다. – pogo