Devise + LocomotiveCMS-로그인 요청을 받기 전에 방문하려고했던 페이지 기억

StackOverflow https://stackoverflow.com/questions/9400738

문제

locomotivecms ( github ). 매우 간단한 기능 : 현재 사용자는 로그인 후 "기본 관리 허브"(/ admin /)로 리디렉션됩니다. 사용자가 다른 페이지를 편집하려고하는 경우에도 마찬가지입니다. 대신 로그인 후 해당 페이지로 이동하기를 원합니다.

추가하는 것이 매우 간단하고 합리적인 것 같지만 이틀 동안 노력한 끝에 도움을 요청하기로 결정했습니다.

지금까지 알아 낸 것입니다.

  • 이 앱은 ActiveRecord를 사용하지 않지만 Mongoid (백엔드 DB는 MongoDB)
  • Locomotive는 단순한 '사용자'스키마를 사용하지 않습니다. 인증은 "계정"(이메일, 비밀번호, 이름 등)과 "사이트"(다중 사이트 cms)의 두 부분으로 나뉩니다. "사이트"에는 많은 "회원"이 있습니다. 멤버십에는 하나의 site_id와 account_id가 있습니다 (또한 역할도 있지만 이것은 중요하지 않은 것 같습니다).
  • 기관차의 대부분의 "액션"은 /admin/ 경로 뒤에 있습니다. 예를 들어 로그인 경로는 /admin/log_in입니다. 대부분의 컨트롤러도 /admin/ 하위 폴더 안에 있습니다.
  • 이 비트를 찾았습니다. /admin/sessions_controller 루트에 로그인 한 후 방문 할 URL을 분명히 "수정"하는 /admin/에 있습니다.

    관련 내용은 다음과 같습니다. 라코 디스

    내가 필요한 것이이 대신 거의 확실합니다. 라코 디스

    내가 Devise의 문서를 올바르게 이해했다면 stored_location_for는 세션에서 값 (Locomotive의 경우 session['admin_return_to'])을 검색하여 "누군가가 어딘가로 돌아가고 싶어하는지 확인"합니다. 비어 있으면 || 관리자 루트에 대한 안전한 경로를 보장합니다.

    안타깝게도 작동하지 않습니다. 필요한 세션 변수가 설정되지 않은 것 같습니다. 저는 Devise가 이런 종류의 자동으로 수행했다고 가정했습니다.

    세션 값을 직접 설정해야하나요? 그렇다면 어디? 아니면 내 가정이 잘못 되었나요?

    감사합니다!

도움이 되었습니까?

해결책

최상의 솔루션은 LocomotiveCMS의 최신 버전으로 업데이트됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top