Web Development
[Django] 엑셀 데이터 출력 페이지 만들기(4) - 로그인 기능 구현
ISLA!
2023. 8. 2. 14:01
회원가입부터 인증까지 완료한 상태로 (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