Django - 회원가입 & 로그인

Dalbi·2021년 4월 7일
0
post-custom-banner

Django를 활용하여 웹페이지의 기본 기능중 하나인 회원가입과 로그인 기능을 구현하였다.

회원가입

코드는 보는것과 같다.

암호화를 위한 bcrypt와 token을 위한 jwt, 통신을 위한 json을 import했다.

그위 Django에서 지원하는 json형식으로 통신하기위한 기능을 import하고 현재파일에 사용되는 메소드들을 활용하기 위해 views를 import해줬다.

이후 본인이 만든 models.py의 내용과 정규식을 활용한 이메일 양식 확인 모듈을 import해줬다.

그리고 아래 로그인에서 사용하게 될 SECRET_KEY또한 import했다.

이후 첫번째 if문은 입력된 비밀번호가 8초과인지 확인하는 작업이다.

두번째 if문은 이전 정규식을 활용하여 email형식에 맞는지 확인하는 작업이다.

세번째 if문은 입력된 사용자 정보가 존재하는지 확인하는 작업이다.

이 작업이 끝나고 옳게 입력된 정보들은 create를 통해 models.py로 만들었던 테이블 형식으로 데이터베이스에 저장된다. 비밀번호는 이전 암호화 내용과 같이 암호화를 통해 bytes형태가 아닌 str형태로 저장해준다.

마지막으로 try: except를 통해 에러(여기서는 KeyError)가 생겼을때 에러를 표시한다.

로그인

첫번째부터 세번째 if문을 통해 로그인 하려는 유저가 데이터 베이스에 있는 유저인지를 확인하고 해당 유저의 정보를 받아 변수(여기서는 signin_user)에 저장했다.

만약 맞는 유저 정보가 없다면 찾을수 없다고 반환한다.

네번째 if문에서는 bcrypt.checkpw()의 기능으로 입력된 비밀번호를 bytes화 하여 입력하고 데이터 베이스에 저장된 비밀번호를 bytes화 하여 입력하여 일치하는지 확인하는 작업이다. 이때 일치하게되면 Token이라는것을 발행하게 되고 이는 결과값과 함께 출력된다.

만약 이 과정에서 로그인을 하지 못한다면 '존재하지 않는 유저'로 반환한다.

회원가입과 마찬가지로 try: except를 통해 에러(여기서는 KeyError)가 생겼을때 에러를 표시한다.

profile
백엔드..?
post-custom-banner

0개의 댓글