2012-11-14 3 views
27

페이지를 새로 고침하면 유성 세션이 재설정됩니까?Meteor 세션 및 브라우저 새로 고침

나는 웬일인지 그들이 생각했던 것 같지 않지만 그들이하는 것처럼 보인다. 그들을 지속시킬 수있는 방법이 있습니까?

만약 이것이 최선의 해결책이 아니라면?

사용자가 아직 등록되지 않은 경우에도 사용자가 새로 고침 (이 데이터는 사용자에게 해당)하는 경우 동일한 데이터를 표시하려고합니다.

+0

일부 공통 데이터를 Meteor.user에 저장합니다. 페이지를 새로 고침하면 다시 설정할 수 있습니다. – crapthings

+2

예, 로그인하지 않은 상태에서도 지속성을 원하고 있습니다. – Jonovono

답변

0

Session은 글로벌 키 값 저장소로 반응이 좋습니다.

http://docs.meteor.com/#session

세션은 키 - 값 쌍의 임의의 집합을 저장하는 데 사용할 수있는 클라이언트에서 전역 객체를 제공합니다. 현재 선택한 항목과 같은 항목을 목록에 저장하는 데 사용합니다.

세션의 특별한 점은 반응이 있다는 것입니다. 템플릿 내부에서 Session.get ("currentList")를 호출하면 Session.set ("currentList", x)가 호출 될 때마다 템플릿이 자동으로 다시 렌더링됩니다.

클라이언트에 무엇인가 유지해야하는 경우 구형 브라우저를 염두에 둔다면 브라우저 localstorage 또는 쿠키를 사용할 수 있습니다.

+0

실제로 Amplify 패키지는 모든 종류의 대체 지원을 제외하고는 실제로 수행합니다. –

1

이렇게하려면 가장 좋은 방법은 amplifyJS 패키지를 사용하는 것입니다. 여기

그들이 그것을 사용하는 방법을 보여주는 누군가의 요점입니다 : 는 https://gist.github.com/2865146

10

사실 당신이 할 수있는 것은 (이)라고 설정하면 증폭의 저장소에 값을 저장 세션의 "서브 클래스"는 만드는 것입니다. Session의 모든 반응 특성을 자동으로 상속받습니다. 다음은 코드입니다. 나를 위해 일했습니다.

그냥 SessionAmplify.set/get 호출로 모든 Session.set/get 호출을 바꿉니다. set()이 호출되면 부모 Session 메서드가 호출되고 amplify.store()도 호출됩니다. "서브 클래스"가 처음 만들어지면, 그것은 amplify의 저장소에있는 모든 것을 그 키 안에로드하여 get()으로 즉시 검색 할 수있게합니다. https://github.com/sebastienbarre/meteor-leaderboard

+0

만약 내가 amplifyjs를 가진 Session의 특정 키를 유지하기를 원한다면 어떻게이 기술을 사용할 수 있습니까? 방법을 적용 할 수있는 방법이 있습니까? – Petrov

+0

sebastien.b가 동일한 작성자인지 확실하지 않지만 mrt add session-amplify로 설치하면이 코드를 패키지로 사용할 수 있습니다. github 프로젝트 : https://github.com/cramrov/meteor-session-amplify – mozboz

4

난 그냥 기본적으로 사용자 기반 영구 Session 인 분위기의 UserSession 패키지를 만들었습니다

당신은 여기에 리더 예제의 작업 변화를 테스트 할 수 있습니다.

+1

을 명확하게하기 위해이 패키지는 세션 변수를 서버 측 컬렉션에 저장합니다. 세션 변수의 클라이언트 측 저장소를 찾고 있다면 sebastien.b의 대답에 따라 amplify를 사용하여이 작업을 수행 할 수 있습니다. – mozboz

+0

좋은 패키지이지만 userId를 중계합니다. 즉, 로그인 한 사용자가 필요합니다. : –

8

이것은 오래된 질문이지만 "유성 세션 관리자"에 대한 검색에서 두 번째 히트입니다. 따라서 u2622 패키지를 추가하는 것이 중요하다고 생각합니다 : 영구 세션이이 문제를 완벽하게 해결합니다. 의 문서에서

: https://atmospherejs.com/u2622/persistent-session

설치

유성 u2622을 추가 : 지속적인 세션

그것의 그! 이제 Session을 사용할 수 있습니다.setPersistent는 새로 고침 후에 저장하는 변수 변수를 설정합니다.

원한다면 Session.set을 사용해도됩니다. 아래의 옵션 섹션을 참조하십시오.

+0

이 하나 주셔서 감사합니다. 그것은 나를 위해 일했다. 내 코드에서 변경해야 할 유일한 것은 : Session.setAuth (및 Session.clearAuth (.. on logout. –

+0

그 Session.set 변경하려면 persistent-session의 두드러기에서, 그것의 증폭 만이 작동한다는 것에 주목할 때 유용 할 것입니다 !! –

관련 문제