많은 개발자 웹사이트에서 GitHub 소셜 로그인 기능을 쉽게 찾아볼 수 있습니다. 사용자 입장에서도 회원가입 절차 없이 클릭 한 번으로 로그인할 수 있어 매우 편리합니다. 이 글에서는 django-allauth 라이브러리를 활용해 Django 웹사이트에 GitHub OAuth 인증을 추가하는 방법을 단계별로 살펴보겠습니다.
1단계: GitHub OAuth 애플리케이션 등록
먼저 https://github.com/settings/developers/에 접속하여 새로운 OAuth 애플리케이션을 생성하고, 아래 두 개의 URL을 등록합니다.
https://127.0.0.1:8000/— 홈페이지 URLhttps://127.0.0.1:8000/accounts/github/login/callback— 인증 콜백 URL
애플리케이션 생성이 완료되면 Client ID와 시크릿 키(Client Secret)가 발급됩니다. 두 값을 모두 복사해 두세요. 이제 코딩 단계로 넘어가겠습니다.
2단계: django-allauth 설치 및 설정
다음 명령어로 django-allauth 라이브러리를 설치합니다.
pip install django-allauth
settings.py 파일에 다음 코드를 추가합니다.
INSTALLED_APPS = [ ################## # # # # 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.github', 'githubAuthentication'] SITE_ID = 1AUTHENTICATION_BACKENDS= [ 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend'] LOGIN_REDIRECT_URL="https://github.com"
INSTALLED_APPS에는 필요한 allauth 관련 앱들과 GitHub 프로바이더를 등록했습니다. AUTHENTICATION_BACKENDS에는 Django의 기본 인증 백엔드와 함께 allauth의 인증 백엔드를 추가했습니다. 마지막으로 LOGIN_REDIRECT_URL은 로그인 성공 후 이동할 리디렉션 주소를 지정합니다.
프로젝트 루트의 urls.py
from django.contrib import adminfrom django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), # allauth 라이브러리 경로 — 그대로 복사해서 사용하세요 path('accounts/', include('allauth.urls')), # 직접 만든 앱 경로 path('', include("githubAuthentication.urls"))]첫 번째 경로는 GitHub 로그인을 활성화하기 위해 allauth 라이브러리가 요구하는 기본 경로이고, 두 번째는 우리가 만든 앱의 경로입니다.
3단계: 관리자 페이지에서 소셜 애플리케이션 등록
개발 서버를 실행한 뒤 https://localhost:8000/admin에 접속하여 Social applications(소셜 애플리케이션) 메뉴로 이동합니다.
새 애플리케이션을 추가합니다.

앞서 복사해 둔 Client ID와 시크릿 키를 붙여넣고, 이름 필드에는 애플리케이션 이름을 입력합니다. 공급자(Provider)는 github를 선택하세요.
그다음 Sites 항목에서 example.com을 클릭한 뒤 화살표 버튼을 눌러 오른쪽 목록으로 옮기고 저장합니다. 이 과정을 통해 GitHub가 Django 프로젝트의 인증 백엔드로 등록됩니다.
4단계: 프론트엔드 템플릿 작성
templates 폴더 안에 home.html 파일을 생성하고 다음 내용을 추가합니다.
<!DOCTYPE html><html> <head> <title>tut</title> </head> <body> {% load socialaccount %} {% providers_media_js %} <a href="{% provider_login_url 'github' method='js_sdk' %}?next=https://github.com">login with github</a> </body></html>여기서는 템플릿 태그를 통해 allauth 라이브러리를 프론트엔드에 로드하고 필요한 JS를 렌더링했습니다. <a> 태그에는 GitHub 로그인 페이지로 연결되는 URL을 지정했습니다.
view.py
from django.shortcuts import render # Create your views here.def home(request): return render(request,"home.html")
위 뷰 함수를 통해 프론트엔드 페이지를 렌더링합니다.
앱의 urls.py
from django.urls import path,includefrom . import viewsurlpatterns = [ path('',views.home, name="Home" )]URL 패턴을 설정하고 뷰와 연결했습니다.
실행 결과
모든 설정이 끝났습니다. 개발 서버를 실행하고 홈페이지에 접속하면 "login with github" 링크가 표시됩니다. 링크를 클릭하면 GitHub 로그인 페이지로 이동하고, 인증에 성공하면 설정해 둔 리디렉션 URL로 이동합니다.

마무리 및 참고 사항
실제 서비스를 배포할 때는 127.0.0.1 대신 실제 도메인 주소를 GitHub OAuth 애플리케이션에 등록해야 하며, Client Secret이 외부에 노출되지 않도록 환경 변수 등으로 안전하게 관리하는 것이 좋습니다. 또한 django-allauth는 Google, Kakao 등 다양한 소셜 로그인 프로바이더를 지원하므로, 같은 방식으로 손쉽게 확장할 수 있다는 점도 기억해 두세요.