이 글은 안전한 사용자 인증을 위해 GitHub OAuth를 구현하는 방법에 대한 간단한 가이드입니다.
이 가이드에서는 다음을 수행할 수 있습니다
이 기사를 최대한 활용하려면 사용자가
에 대해 공정하게 이해해야 합니다.우리는 이를 간단한 3단계로 구현해보겠습니다
GitHub 계정의 설정으로 이동하여 GitHub OAuth 자격 증명을 생성하고 개발자 설정이 보일 때까지 아래로 스크롤한 후 아래와 같이 OAuth 앱을 클릭하세요.
기존 앱이 있는 경우 편집할 수 있으며, 새 OAuth 앱을 클릭하여 새 앱을 만들고, 앱에 대해 명확하고 설명이 포함된 이름을 제공하고, 홈페이지 URL http:/에 추가할 수 있습니다. /localhost:8000/ 127.0.0.1을 localhost:로 대체할 수 있습니다. 이것이 Django 앱을 실행하도록 구성한 방법이라면 GitHub에서 설정한 모든 구성이 현재의 구성과 일치해야 한다는 것입니다. 서버 오류가 발생하는 것을 방지하려면 이 콜백 URL http://localhost:8000/api/auth/github/login/callback/을 인증 콜백 URL에 추가하세요. 설정은 아래 이미지에 표시되는 내용을 반영해야 합니다.
나중에 Django 프로젝트에서 사용할 수 있도록 아래와 같이 클라이언트 ID와 클라이언트 비밀번호를 복사하여 저장하세요.
이러한 패키지를 설치하려면 다른 곳에서 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 파일에서 이루어져야 합니다
다 끝났나요? http://localhost:8000/api/auth/github/login/ 엔드포인트를 방문하면 다음과 같은 페이지로 리디렉션되어야 합니다. 그리고 계속 버튼을 클릭하면 GitHub의 인증 페이지로 리디렉션되어야 합니다
인증에 성공하면 http://localhost:8000/accounts/profile/로 리디렉션되어 404 오류 페이지가 표시됩니다.
이 문제를 해결하려면 앱의 urls.py 파일에 엔드포인트 /accounts/profile을 만든 다음 해당 엔드포인트에 대한 상대 보기를 만들 수 있습니다. 엔드포인트와 뷰가 올바르게 설정되면 이제 404 오류 페이지 대신 이 페이지가 표시됩니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!