2013-12-09 1 views
1

Keter는 지금까지 최고였습니다. 내 작은 장난감 프로젝트에서는 프로덕션 서버에서 keter 번들을 만들고 keter의 수신 디렉터리를 밀어 넣었습니다. 모든 것이 잘 동작했습니다.배포 된 Keter 앱이 새로운 Keter 번들로 사용자 로그 아웃

이제 스테이징 환경을 설정하는 방법을 배우려고 했으므로 스테이징 서버에서 번들을 컴파일하려고했습니다 (프로덕션 서버의 이미지 복사본 임). 이 번들을 프로덕션 서버 (scp를 통해)로 푸시하면 로그인 한 사용자가 로그 아웃됩니다. 앱 자체가 다시 로그인 한 후 괜찮

변경하는 것 :.

  • 일부 템플릿 코드가 변경되었습니다하지만
  • Yesod의 설정하기 전에 프로덕션 서버에서 컴파일 할 때 과감한 아무것도 이러한 변화는 미세 없었다. yml이 개발 테스트를 위해 준비 서버의 IP 주소를 사용하도록 변경되었습니다.
  • Keter.yaml이 수정되지 않았습니다. 내가 잘못 뭐하는 거지

? 왜 Keter는 내 .keter 번들이 만들어 졌는지 상관하지 않습니까? 로그인 한 사용자를 방해하지 않고 번들을 만드는 방법이 있습니까?

감사합니다.

답변

1

대부분의 경우 응용 프로그램을 배포 할 때마다 새로운 client_session_key 파일이 생성되는 것이 문제입니다. 대신 키 파일을 한 번 생성하고 다시 사용해야합니다. 이것은 일반적으로 Yesod 스캐 폴딩 사이트에서 올바르게 처리되지만 config에 키 파일을 저장하는 makeSessionBackend 구현을 제공합니다.

makeSessionBackend의 현재 구현은 무엇입니까? 그리고 귀하의 keter 번들에는 config/client_session_key.aes 파일이 포함되어 있습니까?

+0

와우 당신은 믿을 수 없습니다! 내 Keter 번들 (이전 버전과 새로운 버전)을 풀었으며 실제로 client_session_key.aes 내부에서 다른 내용을 보았습니다! 나는 scaffolded 사이트를 사용하고 있으며이 코드는'makeSessionBackend _ = fmap $ defaultClientSessionBackend (7 * 24 * 60 * 60) "config/client_session_key.aes"'로되어있다. 어떻게 변경해야합니까? 프로덕션 서버가 일관되게 동일한 키를 다시 생성 한 호스트 이름에 기본값과 어떻게 연결되어 있습니까? – Ecognium

+0

신경 쓰지 마세요. 문제를 찾았습니다! 내'.gitignore'에'aes 파일 '이있어 준비 서버로 보내지지 않습니다. 번들을 생성해야 할 때 수동으로 복사합니다. 문제를 지적 해 주셔서 감사합니다! – Ecognium

관련 문제