Django – AWS Cognito 연동 예제 만들어 보기 – 초안
안녕하세요. 오늘은 장고(Django) 웹 프레임워크와 AWS Cognito 서비스를 연동하는 예제를 소개하겠습니다. Cognito는 AWS에서 제공하는 사용자 인증 및 권한 관리 서비스입니다. 장고에서 Cognito를 사용하면, 사용자가 손쉽게 회원가입, 로그인, 비밀번호 변경 등의 기능을 이용할 수 있습니다. 또한, Cognito는 다양한 소셜 로그인을 지원하므로, 페이스북, 구글, 카카오 등의 계정으로도 로그인할 수 있습니다.
이번 예제에서는 장고 프로젝트를 생성하고, Cognito 사용자 풀(User Pool)을 생성하고 설정하는 방법을 알아보겠습니다. 그리고, django-cognito-jwt 라이브러리를 이용하여 장고와 Cognito를 연동하는 방법을 설명하겠습니다. 마지막으로, 장고의 admin 페이지에 로그인하는 방법과 장고의 views.py에서 Cognito 사용자 정보에 접근하는 방법을 보여드리겠습니다.
이 글은 장고와 AWS에 대한 기본적인 지식이 있는 분들을 대상으로 합니다. 장고와 AWS에 익숙하지 않으신 분들은 다른 자료를 참고하시기 바랍니다.
장고 프로젝트 생성하기
먼저, 장고 프로젝트를 생성해야 합니다. 새로운 폴더를 만들고, 가상 환경을 활성화한 후, pip 명령어로 장고와 django-cognito-jwt 라이브러리를 설치합니다.
$ mkdir django-cognito-example
$ cd django-cognito-example
$ python -m venv venv
$ source venv/bin/activate
(venv) $ pip install django django-cognito-jwt
다음으로, django-admin 명령어로 새로운 프로젝트와 앱을 생성합니다.
(venv) $ django-admin startproject config .
(venv) $ python manage.py startapp accounts
이제, config/settings.py 파일을 열고, INSTALLED_APPS에 accounts 앱을 추가합니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts', # 추가
]
그리고, config/urls.py 파일을 열고, accounts 앱의 urls.py 파일을 포함시킵니다.
from django.contrib import admin
from django.urls import path, include # 추가
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls')), # 추가
]
마지막으로, accounts/urls.py 파일을 생성하고, 다음과 같이 작성합니다.
from django.urls import path
from . import views
urlpatterns = [
path('login/', views.login_view, name='login'),
path('logout/', views.logout_view, name='logout'),
]
여기까지 장고 프로젝트의 기본적인 구조를 만들었습니다. 다음으로, Cognito 사용자 풀을 생성하고 설정하는 방법을 알아보겠습니다.