이번시간에는 SSL 서버 구동으로 https 보안 소켓 을 이용하여 로컬 서버 여는 방법과 Google Cloud Oauth2.0 클라이언트 키 발급을 통해서 구글로 로그인 하는 방법을 알아보겠습니다.
절차 :
Google 클라이언트 ID 생성 > Ubuntu Google KEY settings > Ubuntu SSL settings > https:localhost:8000 접속
참고문헌 :
https://developers.google.com/identity/protocols/oauth2?hl=ko
1. Oauth 웹 클라이언트 ID 만들기 :
https://console.cloud.google.com/
I : API 및 서비스 > 사용자 인증 정보 클릭
II : Oauth2.0 클라이언트 ID 생성 :
처음 프로젝트를 생성 하였으면 Oauth2.0 클라이언트 ID 란은 Null임.
사용자 인증 정보 만들기 > Oauth 클라이언트 ID
III : Oauth 클라이언트 ID 만들기 :
승인된 리디렉션 URL 입력 > 만들기
http://localhost:8000/complete/google-oauth2/
* Oauth 프토토콜 설명
1. 클라이언트 앱은 서비스 제공자에게 사용자의 데이터에 대한 액세스 권한을 요청
2. 사용자는 서비스 제공자의 로그인 페이지로 이동하여 자격 증명을 제공받음
3. 클라이언트는 이 액세스 토큰을 사용해 서비스 제공자의 api에 요청을 보내고 사용자의 데이터에 접근
IIII : 클라이언트 ID 발급 확인 :
정상적으로 발급된 화면을 볼 수 있음
2. Ubuntu Google KEY settings :
I : Django Project settings :
내가 만들어놓은 프로젝트 루트로 들어가서 settings.py 를 열고 조금 전 발급 받은 고유 키 복사
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'social_django',
'datafunction_app',
'sslserver',
]
AUTHENTICATION_BACKENDS = (
'social_core.backends.google.GoogleOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '클라이언트 ID'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '클라이언트 보안 비밀번호'
SOCIAL_AUTH_GOOGLE_OAUTH2_REDIRECT_URI = 'https://127.0.0.1:8000/social/complete/google-oauth2/'
SOCIAL_AUTH_REDIRECT_IS_HTTPS = False
LOGIN_URL = 'login'
LOGOUT_URL = 'logout'
LOGIN_REDIRECT_URL = 'home'
settings.py
Views.py
from django.shortcuts import render, redirect
from social_django.models import UserSocialAuth
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
@login_required
def home(request):
return render(request, 'home.html')
def login(request):
return render(request, 'login.html')
def google_authenticate(request):
# 구글 리디렉션 Oauth login URL
return redirect('social:begin', 'google-oauth2')
urls.py
# datafunction_app/urls.py
from django.urls import path, include
from .views import home, login, google_authenticate
urlpatterns = [
path('home/', home, name='home'),
path('login/', login, name='login'),
path('google-auth/', google_authenticate, name='google-auth'),
path('social/', include('social_django.urls', namespace='social')),
# 다른 URL 패턴들을 필요에 따라 추가
]
II : Migrate 확인 :
지금까지 추가한 변경사항 저장
python manage.py migrate
3. Ubuntu SSL settings
django-sslserver 패키지를 사용하여 https 로컬로 서버를 여는 방법을 알아볼게요
I : django-sslserver 패키지 설치 :
pip install django-sslserver
II : settings.py INSTALLED_APPS > sslserver 추가 :
INSTALLED_APPS = [
#... 밑에 sslserver 추가
'sslserver',
]
III : runsslserver 명령어로 SSL 개발 서버 실행 :
python manage.py runsslserver
결과 :
Google Auth 인증 전
Google Auth 인증 단계 로그
Google Auth 인증 후 home form 으로 이동
'Ubuntu' 카테고리의 다른 글
4.[설치 및 세팅]Postgresql 나만의 게시판을 만들어보자 [1/2] (0) | 2023.11.19 |
---|---|
2.[서버] Django를 이용해서 나만의 홈페이지를 만들어보자 [1/2 로그인 기능] (0) | 2023.11.15 |
1.[서버] Django를 이용해서 나만의 홈페이지를 만들어보자 [환경세팅] (0) | 2023.11.15 |