사용자가 로그인 할 때 이메일로 인증하는 기능을 추가하려고 한다.
대략적인 방법인 urls나 views는 이 블로그를 참고했음.
[Django] 이메일 인증하기 (+이메일 템플릿)
dj-rest-auth의 편리함에 감동먹음.. 개쩐다!!!!저번 포스팅에서 쓴 장고에서 이메일을 보내기 위한 설정값들에 이어서, 회원가입을 할때 이메일 인증 과정을 거치도록 나머지 설정들을 쓴다.유저가
velog.io
하지만 저 블로그에서 알려준 대로 한다면 밑에와 같은 오류가 뜬다.
해결 한 후에 보면 당연한 오류지만, 당장에는 왜 뜨는지 당연히 모름.
오류를 해석하면 인증이 필요하다고 뜨는데, 나는 settings에 EMAIL_HOST_USER 와 EMAIL_HOST_PASSWORD를 집어넣어놨음에도 왜 오류가 뜰까? 라고 생각했음.
이렇게 작성이 되어있었고, print(EMAIL_HOST_USER)를 해보니 none이 뜨더라. 그 후 코드를 보니 os.environ.get으로 되어있는게 뒤늦게 보였음.
생각해보면 environ.get 으로 가져오는데 거기다가 이메일과 비밀번호를 직접 넣어놓으니 당연히 못읽지.
그래서 가상환경 세팅(.env)를 했음
pip install django-dotenv 로 가져오려고 했음.
import dotenv
if __name__ == '__main__':
dotenv.read_dotenv()
main()
env를 작성하고 manage.py에 위에와 같은 코드를 쓰면 밑에 오류가 뜸
cp949? encoding 에러? 그래서 dotenv.read_dotenv(encoding='utf8') 을 해보면 dotenv() 안에는 저걸 못넣는다네?
해결책은
from dotenv import load_dotenv 를 통해 load_dotenv 를 불러오고
이렇게 작성했다. 오류 해결.