전체 글
-
Django 이메일 인증으로 비밀번호 찾기 기능 구현(SMTP)Django 2022. 4. 7. 15:11
일단 아래와 같은 순서로 구현한다. 1. 이메일로 보내는 랜덤 코드 만들기 2. Django EmailMessage 모듈을 이용하여 랜덤 코드 Message 보내기 (user DB에 같은 코드를 보낸다.) 3. 랜덤 코드 확인하기 4. 비밀번호 변경하기 settings.py SMTP를 사용하기위해 settings.py 맨 밑에 아래 코드를 추가해준다. SMTP에 관한 내용은 따로 알아보는 것을 추천한다. 그리고 SMTP를 사용하기 위해서 아래 링크에 접속하여 보안 수준이 낮은 앱 허용: 사용을 활성화 시킨다. https://myaccount.google.com/lesssecureapps EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAI..
-
내일배움캠프 15주차내배캠 회고록 2022. 3. 27. 20:45
이번 주 월요일 코로나에 확진 판정을 받게 되었다. 생각보다 몸 상태가 많이 좋지 않아서 이번 주는 집중해서 코딩하지는 못 했다. 그래도 현재는 많이 회복 되어서 다음 주는 이번 주에 못 한 만큼 배로 더 열심히 해야겠다. 다음 주는 프론트엔드 파트를 집중해서 해볼생각이다. 팀원들이 잘 해준 덕분에 백엔드는 그래도 원활하게 잘 되어가고 있는 것 같다. 되어있는 부분까지 프론트를 이번 주에 마무리를 하고 다시 다음 주는 다시 백엔드 고도화를 할 예정이다. 클린코드 요즘 클린코드에 관심이 생겼다. 클린 코드란 코드의 성능과 가독성을 향상시킬 수 있는 깨끗한 코드를 작성하는 방법을 담은 책이다. 이 것을 내 프로젝트에 쉽게 적용하는 건 생각보다 많이 어려웠지만 최대한 적용하여 코드를 작성하였다. 이전 프로젝트..
-
기본 장고에서 JWT를 활용한 로그인 구현Django 2022. 3. 27. 14:23
오늘은 기본 장고에서 기존 csrf 세션 방식이 아닌 JWT를 활용하여 로그인을 구현해보려고 한다. 일단 간단하게 구현 방식을 설명하자면 1. 사용자가 로그인을 하게되면 서버에서 사용자를 확인 후 Access Token 발급 2. 발급된 토큰을 cookie에 저장 3. 사용자가 데이터 요청시 Access Token을 보냄 4. 서버에서 Access Token을 검증 후 응답 1. package install PyJWT 와 django-dotenv를 insall 해준다. 2. 프로젝트 폴더에 .env 파일을 생성한다. SECRET_KEY= (secret_key) JWT_ALGORITHM="HS256" secret_key는 프로젝트를 생성하면 settings.py에 발급되는SECRET_KEY이다. 또한 c..
-
Django ninja JWT를 활용하여 로그인 구현Django 2022. 3. 14. 19:17
Django ninja로 JWT를 구현하는 것은 쉽지가 않았다. 일단 레퍼런스가 많지 않을뿐더러 공식홈페이지를 보고 해보려 했지만 JWT와 관련해서는 친절하게 알려주지 않는다. 어렵게 구글링하고 공식홈페이지에 있는 코드를 접목시켜 header에 token을 저장하는 방법은 성공했지만 cookie에 저장하는 것은 아직 오류가 있다. 그래도 내가 시도한 곳 까지 블로그에 써보려한다. 일단 먼저 django-ninja-jwt 를 install 해준다. 여기에서는 poetry를 사용하기 떄문에 poetry add django-ninja-jwt 를 프로젝트 터미널 내에 입력해준다. 스키마 from ninja import Schema class TokenSchema(Schema): access: str router..
-
내일배움캠프 13주차내배캠 회고록 2022. 3. 13. 22:54
코딩에는 왕도가 없다. 다른 것은 몰라도 코딩은 기본부터 배워야 모든 것을 이해할 수 있는 것 같다. 며칠 동안 JWT에 대해 자세히 모른 채 JWT 토큰을 받아오는 코드를 계속 붙잡고 있었다. 그런데 오류가 한 번 나오면 나는 그 오류에 대해 근본적인 원인을 모른 채로 에러 메세지를 그대로 구글에 복사 붙여넣기를 하여 해결하려 했다. 그리고 역시나 스트레스만 받고 결국 나는 이 오류를 해결하지 못했다. 그냥 포기할까 생각하다가 우연히 유튜브에서 JWT토큰에 관한 영상을 보았는데 그 영상을 보고난 이후로 내 코드가 좀 다르게 보이는 것을 느꼈다. JWT를 이해하고 코드를 보니 왜 이렇게 구현을 했는지가 이해되는 것이였다. 에러 또한 쉽게 고쳤고 기본 지식이 얼마나 중요한지 깨닫게 되었다. 취업의 압박에 ..
-
내일배움캠프 12주차내배캠 회고록 2022. 3. 6. 23:07
이제 마지막 팀, 마지막 프로젝트를 시작했다. 그리고 나는 팀의 조장을 맡게 되었다. 사실 난 조장과 맞지않는 성향을 가지고 있지만 난 항상 나의 내면 한 구석에 조장을 한 번 해보고 싶다는 작은 마음이 있었기 때문에 용기를 내어서 조장을 하겠다고 했다. 내배캠 안에서 팀이 와해가 되는 경우를 많이 봤기에 나는 우리팀이 무너지지 않게 팀원 간의 갈등이나 마음 상하는 일이 없도록 책임감을 가지고 잘 이끌어야겠다. 저번 주 프로젝트를 하면서 django rest framework를 사용해서 token을 받아 소셜로그인하는 기능을 만드려 했지만 google에서 token을 받아오는데 어려움이 있고 시간이 부족해서 결국 django에서 제공하는 allauth 라이브러리를 이용해 session 방식으로 구현하였다..
-
Django allauth Google Login page가 바로 안보일 때Django 2022. 2. 26. 23:49
allauth를 사용하여 google 로그인을 구현하고 로그인 버튼을 누르면 아래와 같은 페이지로 이동하는 경우가 있다. 원인은 버전 문제이다. 버전을 업데이트 하면 문제를 해결할 수 있다. 해결방법 pip uninstall django-allauth-> 기존의 allauth 패키지를 삭제한다. pip install django-allauth==0.45 -> 0.45 버전으로 다시 인스톨 한다. python manage.py makemigrations pytthon manage.py migrate -> 그리고 다시 migrate 해준다. 위 코드가 실행 되면 google login page로 바로 들어갈 수 있다.