본문 바로가기
Web Development

[Django] 엑셀 데이터 출력 페이지 만들기(4) - 로그인 기능 구현

by ISLA! 2023. 8. 2.

회원가입부터 인증까지 완료한 상태로 (3)을 종료했다.

이제 로그인 기능을 구현해보자.

 

로그인 기능 구현

 

1. login action 정의

  • main > templates >> signin.html 로 접속
  • html action 수정 : "signin/login"

 

 

2. signin/login 액션과 연결되는 url을 지정

  • main > urls.py
  • path 추가 : views.login >> login 함수 정의하러 가야함!

 

3. 로그인 관련 함수 처리 : login, index, result

  • url에서 처리할 함수 지정할 차례이다
  • main > views.py
  • login, index, result 함수를 차례로 작성한다

(1) def login()

  • 로그인이 진행되는 과정을 생각해보자
    • 먼저, 로그인된 사용자만 전체적인 기능을 이용할 수 있도록 구현해야 한다
    • 앞서 저장된 세션(verify 함수)에 저장된 정보와 사용자의 로그인 정보가 일치해야하는지 확인
      • signin.html 에서 받아온 loginEmail 과 loginPW 정보를 불러온다
      • model에 저장된 user 정보도, 이메일 정보로 받아온다
    • 조건문을 사용해, 로그인 패스워드가 세션의 패스워드와 일치하는지 확인한다
      • 일치한다면, 해당 로그인 정보를 세션에 저장하고, Index 페이지로 연결
      • 일치하지 않는다면, 로그인 실패 페이지로 redirect 되도록 한다

 

(2) def index()

  • 앞서, 로그인에 성공했을 때 main_index 페이지로 연결했다
  • 이제 main 화면에서 로그인된 사용자가 접근하고 웹사이트를 활용할 수 있도록 함수를 수정한다
    • 사용자가 세션에 저장되어 있다면 >> main화면으로 연결
    • 사용자 정보를 세션에서 찾을 수 없다면, 로그인 실패다 >> 다시 로그인화면(signin으로 연결)

 

(3) def  result()

  • result 함수도 수정한다 >> 🧐 왜 result 를 수정해야할까?
    • 기본적으로 웹페이지는 로그인 정보를 세션에 저장한 상태에서, 사용자의 행위와 관련된 정보를 보여줘야 하기 때문
  • 조건문을 사용하여 처리
    • user_name 이 세션 키값에 저장되어 있다면, 로그인이 잘 된 것이므로 >> result 화면으로 연결
    • 그렇지 않은 경우면, 로그인이 안된 것이므로 signin로그인 화면으로 연결

 

 

4. 로그아웃 처리

(1) 로그아웃 path 정의

  • main > urls.py 
  • 로그아웃과 관련된 path를 정의해준다
    • 사용자가 로그아웃하면 이 페이지로 연결되는 것
    • 해당 패스와 관련된 html은 나중에 처리

 

(2) 로그아웃 함수 정의

  • main > views.py
  • 로그아웃 함수 정의
    • 로그아웃은 곧, 세션 종료를 의미한다
    • 세션 종료는 세션 정보 삭제를 통해 이루어진다
    • 세션 종료 후, 다시 로그인 페이지로 연결되도록 한다

 

 

728x90