2011-01-20 4 views
0

이것은 내 JS 요청이 uploadify에서 오는 것과 관련이있을 수 있지만 기본적으로 내가하고 싶은 것은 uploadify JS 요청에 있습니다. 세션 값을 설정하고 싶습니다. 이것은 작동하지 않는 것 같습니다.자바 스크립트 요청에 대한 세션 키를 생성

그러나 HTML 요청을 할 때 그렇습니다.

uploadify가 요청한 매개 변수로 내 세션 키와 값을 전달했습니다. 세션을 인증하고 설정하는 데 필요한 작업이 있나요?

답변

0

예, 불행히도 조금 까다 롭지만 완전히 가능합니다.

먼저 비 쿠키 저장소 세션이 필요합니다. 쿠키 저장소 세션을 사용하는 경우 데이터베이스/memcache/redis 또는 유사한 세션 저장소로 전환해야합니다.

세션이 정상적으로 작동하는 방법은 레일이 세션 ID가있는 쿠키를 제공한다는 것입니다. 브라우저가 정상적인 요청을하면 쿠키가 레일스로 보내 지므로 레일스는 데이터베이스에서 찾아야 할 세션을 즉시 알고 그걸 찾아서 세션 []에로드합니다.

uploadify 또는 유사한 기술을 사용하는 경우 요청에 쿠키 데이터가 함께 전송되지 않으므로 레일스는 누가 요청을했는지 전혀 알지 못하므로 전체 세션이 전혀 작동하지 않게됩니다.

그래서 수정하는 방법은 세션 ID를 매개 변수로 업로드하여 업로드하는 것입니다. 사용자가 수행하는 것처럼 들리지만 일부 랙 미들웨어를 믹스에 추가해야합니다.

랙 미들웨어는 기본적으로 초기 요청과 레일 사이에있는 계층이며 매개 변수를 살펴보고 정상 http 매개 변수에서 session_id를 확인하면 쿠키처럼 보이는 것으로 바뀝니다 , 그것은 레일에 도착하기 전에. 본질적으로 레일스는 일반 쿠키를 사용하는 일반 사용자라고 생각하고 모든 세션 구성 요소가 작동하기 시작하며 레일은 누가 요청을하는지 알 수 있습니다.

다시 작성하는 것보다 그렇게하지 않고 온라인으로 꽤 몇 가지 예입니다 난 그냥 연결됩니다 :

http://railstips.org/blog/archives/2009/07/21/uploadify-and-rails23/

http://metautonomo.us/2010/07/09/uploadify-and-rails-3/

행운을!

+0

그래서 예제에 따라 미들웨어를 가지고 있고 적절한 세션 정보를 생성 해 왔지만 왜 쿠키 저장소 세션을 사용하지 않을까요? 미들웨어가 유효한 쿠키를 생성하는 경우 세션 저장 방법이 작동하지 않습니까? 모든 예제가 쿠키 저장 세션을 사용하고있는 것처럼 보입니다. – brewster

+0

어쩌면 쿠키 저장소와 함께 작동하도록하는 방법이 있지만 쿠키가 작동하지 않는 이유에 대한 이해는 클라이언트 (브라우저)가 모든 세션 데이터를 서버 (물론 인코딩 됨)에 각각 보냅니다 의뢰. 내가 알기에 업로드를 업로드 할 수있는 방법이 없습니다. 대신 데이터베이스 세션에서 클라이언트는 세션 ID 만 보내고 서버는 세션 데이터를 끝까지 찾아야합니다. – spotman

+0

흠 ... 저장된 유일한 쿠키 데이터는 세션 키/값이며 uploadify에서 매개 변수로 전달됩니다. 미들웨어는 꼭 쿠키로 설정하고있다. 세션 데이터를 제외하고는 어떤 다른 데이터가 필요합니까? – brewster

관련 문제