TIL - 180730
7월 30일 TIL : 배민찬 카피 프로젝트
django-extension 패키지 활용해 Django 모델 ERD 이미지 파일 생성
필요한 프로그램, 패키지 설치
$ brew install graphviz
$ pipenv install pygraphviz
Django 설정
# settings.py
GRAPH_MODELS = {
'all_applications': True,
'group_models': True,
}
INSTALLED_APPS += [
'django_extensions',
]
위와 같이 설정하고 아래와 같이 실행하면 이미지 파일을 생성할 수 있다.
$ ./manage.py graph_models -a -g -o my_project_visualized.png
예시 파일은 여기!
카카오 REST API를 활용해 카카오톡 로그인
카카오 REST API 문서를 읽고 카카오톡 로그인에 도전하였다.
- 카카오톡 개발자 등록 후 웹 앱 등록
- 카카오 REST API 문서대로 이용해 카카오톡 로그인 URL로 이동
- 사용자가 카카오톡 로그인을 하면 REST API가 내가 설정한 redirect_uri로 code 전송(GET 방식)
- (여기서부터는 Django Custom Backend 생성)code 활용해 access_token을 받아오는 POST 방식의 request 만듦
- 받아온 access_token을 활용해 사용자의 카카오톡 계정 정보를 얻어옴
- 계정 정보로 Djagno 애플리케이션의 유저 생성 후 로그인(Custom Backend 끝)
- 사용자에게 로그인 화면 정보가 담긴 응답 전송 또는 JSON 전송
- Django 애플리케이션의 settings.py에 AUTHENTICATION_BACKEND 설정 추가
이 커밋에 해당 코드가 담겨 있다.
OAUTH 2.0의 기본 흐름
카카오톡 로그인을 구현하는 것을 겸해 OAUTH 2.0의 흐름을 정리했다.
- (1) 사용자의 로그인 요청(웹 앱)
- (1.1) 인증 서버로 URI 전송(리다이렉트)
- (2) 1.1의 인증 서버로 로그인 화면 요청
- (2.1) 인증 서버는 로그인 화면 응답
- (3) 로그인 정보 입력
- (4) 로그인 정보를 담아 로그인 요청
- (5) 인증 서버는 로그인 처리
- (6) 인증 정보(카카오 REST API의 code) 사용자에게 응답
- (7) 인증 정보를 웹 앱에 전송
- (7.1) 웹 앱은 사용자에게 받은 인증 정보와 함께 access_token을 인증 서버로 요청
- (7.2) 인증 서버의 access_token 응답
- (7.3) 웹 앱은 access_token과 함께 데이터 서버로 사용자의 정보 요청
- (7.3.1, 2) 웹 앱의 요청을 데이터 서버가 처리 후 응답
- (7.4, 5) 웹 앱은 데이터 서버로부터 응답받은 정보로 로그인 완료 화면 생성 후 사용자에게 응답