1. 장고에서 회원가입 구현 코드를 수정한다.
def signup(request):
if request.method == 'POST':
signupForm = SignupForm(request.POST)
if signupForm.is_valid():
newUser = signupForm.save(request)
return redirect('/user/login')
else :
signupForm = SignupForm()
return render(request, 'user/signup.html',
{'signupForm' : signupForm})
2. 장고에 allauth를 설치한다.
pip install django-allauth
3. settings.py의 INSTALLED APP에 다음을 추가한다.
4. 구글 계정 관리 > 보안 > 2단계 인증 추가 > 앱비밀번호 설정
5. Gmail > 설정 > 모든 설정 보기 > POP/IMAP 설정 > 변경사항 저장
6. settings.py에 아래의 코드를 추가한다.
*allauth 공홈에서 제공하는 코드 참고
# AUTH_USER_MODEL = 'user.User'
SITE_ID=1
AUTHENTICATION_BACKENDS = {
# Needed to login by username in Django admin, regardless of `allauth`
'django.contrib.auth.backends.ModelBackend',
# `allauth` specific authentication methods, such as login by e-mail
'allauth.account.auth_backends.AuthenticationBackend',
}
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = '587'
EMAIL_HOST_USER = '[gmail 계정(~@~)]'
EMAIL_HOST_PASSWORD = '[앱 비밀번호 입력]'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 1
ACCOUNT_EMAIL_SUBJECT_PREFIX = '[이메일 인증]'
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_CONFIRM_EMIAL_ON_GET = True
7. urls.py에 allauth의 경로를 추가한다.
path('', include('allauth.urls'))
8. '[서버주소]/signup/'에 접속하여 회원가입 진행
> 회원가입 페이지
> Sign Up을 누르면 다음과 같이 메일이 전송됐다고 뜬다.
> 메일이 왔다.
> 인증하라는 페이지 링크를 누르면 이렇게 확인 페이지가 뜬다.
> DB를 확인하면 아래와 같다.
인증을 하지 않은 상태면, verified가 0인데, 인증하고나면 1로 바뀐다.
인증 안했을 때,
인증 했을 때,
'클라우드 > AWS' 카테고리의 다른 글
Ansible) 앤서블이란? 앤서블에 대해(Control 노드 구성, 모듈 구성) (0) | 2023.03.28 |
---|---|
IaC) Infrastructure as Code, 쉘 프로그래밍, 쉘 스크립트 만들기 (0) | 2023.03.27 |
장고와 Redis 연결 후 사용하기(1) - 로그인 세션 저장 (0) | 2023.03.24 |
리눅스, Redis 설치 및 사용하기 (0) | 2023.03.24 |
AWS) AWS의 ElasticSearch, OpenSearch 사용하기 (0) | 2023.03.23 |