2012-02-17 3 views
5

나는 시도해 왔지만 기본적으로 iOS 5는 쿠키를 허용하지 않는다는 것을 알았습니다. 저는 Redis를 사용하여 여러 가지를 시도해 왔지만 둘 이상의 요청에 대해 세션을 유지할 수 없습니다.쿠키가없는 Node.JS 세션

쿠키를 사용하지 않으면 어떤 다른 세션 옵션이 있습니까? 난 그냥 내 자신의 "세션 ID"를 보내고에서 Redis를 사용하여 원유 세션 모듈을 굴러하려고하지만 그것은 쉽게 브레이크 수있는 것 같습니다.

답변

2

쿠키를 사용하고 싶을 것입니다. 다른 대안은 URL 매개 변수를 통해 모든 요청에 ​​세션 ID를 추가하고 모든 URL에 추가되도록 미들웨어를 활용하는 앱 전반에 걸쳐 세션 ID를 유지하는 것입니다. 응답을 구문 분석하거나 템플릿 엔진을 하이재킹하여 모든 링크와 양식에이를 포함 시키면됩니다. 나는 iOS가 쿠키를 금지하지 않는다는 것이 정말로 이상하다는 것을 안다. 나는 이것이 틀렸다는 것을 거의 확신하고있다.

+0

사실 내 세션 롤링에 대한 게시물은 거의 내가 한 일입니다. github. 로컬 저장소에 유지할 수 있어야합니다. 나는 이것이 가장 가능성이있는 sencha라는 것을 알지 못했다. 이것을 확인하십시오 ----> https://gist.github.com/1155365 –

5

클라이언트가 쿠키를 지원하지 못하는 경우 LocalStorage에 데이터를 입력 한 다음 서버에 연결하여 세션에 연결하고 단일 페이지 응용 프로그램처럼 구성 할 수 있습니다.

server       |   client 
send initial payload, with token -->  store token in LocalStorage 
initial payload contains some script 

           <-- XHR request for /data?sessid=XXXXX 
look up session, do stuff  --> handle result, update DOM, do more XHR 

가 웹 소켓

지원되는 : 그것은 다음과 같이 보일 것

? Socket.io를 사용하여 전송을 수행하면 대기 시간이 훨씬 단축됩니다.

관련 문제