니르바나
2k
2020-01-09 12:05:37
4
353

Veujs 로그인 여부에 따라 메뉴 표시 및 접근을 제한하려고 합니다.


먼저,

* 현재 질답을 받을 수 있는 사이트를 만들고 있습니다.

* django + vue를 기반으로 만들고 있으며 로그인 / 회원가입 페이지는 django form으로 만들어놨습니다.


먼저 랜딩 페이지에는 질문 리스트가 나오구요.

1. 로그인 여부에 따라 로그인 버튼 / 로그아웃 버튼이 바뀌어서 나와야합니다.

 - 즉 랜딩 페이지에서도 로그인 여부를 알 수 있어야 한다는 것입니다.

 - 랜딩 페이지는 초기 App.vue파일에서 유저 로그인 여부를 props를 통해 전달해주고 있습니다.


2. 또한 질문 리스트를 클릭하면 로그인 한 사람은 질문의 상세정보가 나옵니다.

 - 질문 상세 정보 또한 로그인 정보를 App.vue 파일에서 props를 통해 전달해주고 있습니다.


여기서 생기는 문제가 있습니다.

- 랜딩페이지에서 새로고침을 하는 경우 App.vue가 다시 created되면서 로그인 여부가 props를 통해 다시 전달되나

- 질문 상세 정보 페이지에서 리프레시 하는 경우 App.vue는 다시 created되지 않기 때문에 로그인 여부가 props를 통해 전달되지 않는 문제가 발생합니다.


Q1.

현재는 질문 상세 정보 페이지 내의 created 함수 내에 user 로그인 여부를 서버 쪽에 요청하게끔 조건문을 추가해놨는데요. 이렇게 되면 질문 상세 정보 페이지를 호출 할때마다 로그인 여부를 체크하기 때문에 오버헤드가 클것 같은데 이문제는 어떻게 해결해야할까요?

Q2.

제 생각에는 App.vue 리로딩시에 1회 로그인 여부를 가져오고 전역적으로 해당 정보를 가지고 있는게 좋을듯 한데, 그럴려면 vuex를 쓰는 방법 외에는 없나요?

Q3.

window.localstorage도 염두해두고 있습니다. 다만 해당 프로퍼티로 함수 호출시 문자열로 나오는데, 원래 이런건가요??


0
  • 답변 4

  • maybetomorrow
    115
    2020-01-09 12:41:21
    JWT 토큰을 이용해서 로그인 처리를 하시면 될것 같습니다.
  • 니르바나
    2k
    2020-01-09 12:54:10

    토큰 인증은 구현되어있습니다.

    다만 토큰이 있어도 로그인 된 사용자와 로그인하지 않고 익명사용자로 웹접속한 사람에 따라 구분해서 기능을 주려다보니 로그인 여부를 알아야되는데 토큰정보만으로는 알 수가 없어서 일반적으로 로그인 여부를 어떻게 관리하는지 궁금해서 여쭤봤습니다.

  • maybetomorrow
    115
    2020-01-09 13:11:13
    로그인한 인원만 토큰을 주시면 될꺼같은데.. 이럴 경우 생기시는 문제가 있나요?
  • 니르바나
    2k
    2020-01-09 14:29:45

    아. 그렇네요.

    왜 그생각을 못했을까요.  

  • 로그인을 하시면 답변을 등록할 수 있습니다.