> 백엔드 개발 > 파이썬 튜토리얼 > dj-rest-auth를 사용하여 Django 프로젝트에 GitHub 인증 통합

dj-rest-auth를 사용하여 Django 프로젝트에 GitHub 인증 통합

Susan Sarandon
풀어 주다: 2024-11-22 02:27:11
원래의
493명이 탐색했습니다.

이 글은 안전한 사용자 인증을 위해 GitHub OAuth를 구현하는 방법에 대한 간단한 가이드입니다.

이 가이드에서는 다음을 수행할 수 있습니다

  • GitHub 자격 증명을 사용하여 사용자를 원활하게 생성하거나 로그인하세요
  • 나중에 사용할 수 있도록 사용자 자격 증명을 저장

전제 조건

이 기사를 최대한 활용하려면 사용자가

에 대해 공정하게 이해해야 합니다.
  • 깃허브
  • 장고
  • Django 나머지 프레임워크

우리는 이를 간단한 3단계로 구현해보겠습니다

  • 1. GitHub 설정
  • 2. 장고 설정
  • 3. 테스트 인증 엔드포인트

1. GitHub 설정

GitHub 계정의 설정으로 이동하여 GitHub OAuth 자격 증명을 생성하고 개발자 설정이 보일 때까지 아래로 스크롤한 후 아래와 같이 OAuth 앱을 클릭하세요.
Using dj-rest-auth to integrate GitHub authentication in your Django project기존 앱이 있는 경우 편집할 수 있으며, 새 OAuth 앱을 클릭하여 새 앱을 만들고, 앱에 대해 명확하고 설명이 포함된 이름을 제공하고, 홈페이지 URL http:/에 추가할 수 있습니다. /localhost:8000/ 127.0.0.1을 localhost:로 대체할 수 있습니다. 이것이 Django 앱을 실행하도록 구성한 방법이라면 GitHub에서 설정한 모든 구성이 현재의 구성과 일치해야 한다는 것입니다. 서버 오류가 발생하는 것을 방지하려면 이 콜백 URL http://localhost:8000/api/auth/github/login/callback/을 인증 콜백 URL에 추가하세요. 설정은 아래 이미지에 표시되는 내용을 반영해야 합니다.
Using dj-rest-auth to integrate GitHub authentication in your Django project나중에 Django 프로젝트에서 사용할 수 있도록 아래와 같이 클라이언트 ID와 클라이언트 비밀번호를 복사하여 저장하세요. Using dj-rest-auth to integrate GitHub authentication in your Django project

2. 장고 설정

이러한 패키지를 설치하려면 다른 곳에서 pip install django-allauth dj-rest-auth 요청을 실행하세요. 앱의 settings.py 파일에서 다음 코드 블록을

SOCIALACCOUNT_PROVIDERS = {
    'github': {
        'APP': {
            'client_id': '<github_client_id>',
            'secret': '<github_secret_keys>',
            'key': ''
        }
    }
}

SITE_ID = 1
로그인 후 복사

관리자에서 인증된 사용자의 이메일을 캡처하려면 프로젝트 settings.py 파일에 이 코드 줄을 포함할 수 있습니다

ACCOUNT_EMAIL_REQUIRED = True
로그인 후 복사

다음 코드 블록을 추가하여 settings.py 파일을 계속 수정합니다

'rest_framework',
'rest_framework.authtoken',
'dj_rest_auth',

'django.contrib.sites',

'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.github'
로그인 후 복사


settings.py 파일의 미들웨어에 다음 코드 줄을 포함하세요

'allauth.account.middleware.AccountMiddleware',
로그인 후 복사

마지막으로 다음 코드 블록을 추가하여 프로젝트 urls.py 파일을 수정합니다

from allauth.socialaccount.providers.github import views as github_views

path('api/auth/github/login/', github_views.oauth2_login, name='github_login'),
path('api/auth/github/login/callback/', github_views.oauth2_callback, name='github_callback'),
로그인 후 복사

주의: 수정은 앱의 urls.py 파일이 아닌 프로젝트의 urls.py 파일에서 이루어져야 합니다

3. 인증 엔드포인트 테스트

다 끝났나요? http://localhost:8000/api/auth/github/login/ 엔드포인트를 방문하면 다음과 같은 페이지로 리디렉션되어야 합니다Using dj-rest-auth to integrate GitHub authentication in your Django project. 그리고 계속 버튼을 클릭하면 GitHub의 인증 페이지로 리디렉션되어야 합니다Using dj-rest-auth to integrate GitHub authentication in your Django project

추가 고려사항

인증에 성공하면 http://localhost:8000/accounts/profile/로 리디렉션되어 404 오류 페이지가 표시됩니다. Using dj-rest-auth to integrate GitHub authentication in your Django project

이 문제를 해결하려면 앱의 urls.py 파일에 엔드포인트 /accounts/profile을 만든 다음 해당 엔드포인트에 대한 상대 보기를 만들 수 있습니다. 엔드포인트와 뷰가 올바르게 설정되면 이제 404 오류 페이지 대신 이 페이지가 표시됩니다 Using dj-rest-auth to integrate GitHub authentication in your Django project

dj-auth-rest와 social-auth-app-django의 차이점

dj-auth-rest와 social-auth-app-django는 모두 Django 프로젝트에서 인증을 용이하게 하는 데 사용되는 라이브러리이지만 서로 다른 요구 사항을 충족하고 서로 다르게 작동합니다

dj-auth-rest는 API 기반 프로젝트에 사용되고 social-auth-app-django는 웹 기반 프로젝트에 사용되며 둘 다 동일한 프로젝트에서 사용할 수 있습니다

결론

GitHub OAuth를 Django 애플리케이션에 통합하면 개인이 GitHub 자격 증명을 사용하여 로그인할 수 있는 안전하고 사용자 친화적인 방법이 제공됩니다.

이 가이드를 사용하면 애플리케이션의 보안을 강화하고, 로그인 프로세스를 간소화하며, 관련 사용자 데이터에 액세스하면서 전반적인 사용자 경험을 개선할 수 있습니다.

위 내용은 dj-rest-auth를 사용하여 Django 프로젝트에 GitHub 인증 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿