2012-11-27 6 views
2

여권 로컬 인증을 사용하여 단일 페이지 응용 프로그램을 작성합니다. 사용자가 인증되어 app.post "/login" 내에 반환됩니다. 사용자 개체가 반환 된 후 Chaplin.mediator.user (예 : facebook-example)에 저장됩니다. URL을 수동으로 변경하지 않는 한 모든 것이 정상적으로 작동하지만 URL을 변경하고 Enter 키를 누르면 애플리케이션이 다른 경로로 다시로드되지만 프런트 엔드에는 사용자가 없습니다.경로를 수동으로 변경 한 후에 mediator.user가 손실됩니다.

내가 지금하고있는 일은 내가 수동으로 경로를 변경할 때마다 서버에 요청을 보내고 req.user에 사용자를 요청하는 것입니다. 사용자를받은 후 응용 프로그램은 해당 워크 플로를 계속 수행합니다. 그것은 작동하지만, 이것이 어떻게 될 것인지에 대해서는 생각하지 않습니다. 응답을 기다리지 않으면 로그인해도 사용자 객체가 없습니다.

이 문제를 어떻게 해결할 수 있습니까?

편집 : 사용자가 별도의 쿠키로 저장됩니다. 이 내가 사용자 저장하는 방법입니다

$.cookie.json = true; 
    $.cookie 'user', user.toJSON() 

을 그리고 이것은 페이지가로드 된 후 나는 사용자를 추출하는 방법입니다

userCookie = $.cookie 'user' 
    if userCookie? 
    mediator.user = new Model JSON.parse userCookie 

당신은 그것을 작동하게하는 jquery-cookie plugin이 필요합니다. 사용자가 로그 아웃하면 쿠키를 삭제하는 것을 잊지 마십시오. 그리고 물론 저는 다른 아이디어에 대해서도 열려 있습니다.

답변

1

사용자 (세션이라고도 함)를 로컬에 저장해야합니다. Backbone 응용 프로그램이로드 될 때 실제로 사용자가 이미 로그인 한 경우 사용자를 올바른 위치로 라우팅해야합니다.