使用 dj-rest-auth 将 GitHub 身份验证集成到您的 Django 项目中
本文是关于如何实现 GitHub OAuth 进行安全用户身份验证的简单指南。
在本指南中,我们将能够
先决条件
为了充分利用本文,用户应该对
我们将通过 3 个简单步骤来实现这一点
1. 设置 GitHub
通过转到 GitHub 帐户上的“设置”来创建您的 GitHub OAuth 凭据,向下滚动到看到“开发人员设置”的位置,单击“OAuth 应用程序”,如下所示。

Copy and save your `Client ID` and `Client Secrets` as shown below for later use on your Django project Copy and save your `Client ID` and `Client Secrets` as shown below for later use on your Django project 
2.设置Django
在其他位置运行`pip install django-allauth dj-rest-auth request`以安装这些包。在应用程序的`settings.py`文件中,将以下代码块添加到您的
SOCIALACCOUNT_PROVIDERS = {
'github': {
'APP': {
'client_id': '',
'secret': '',
'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. 测试身份验证端点
 and when you click on the `Continue` button you should be redirected to GitHub's authorization page  and when you click on the `Continue` button you should be redirected to GitHub's authorization page 
其他考虑事项


dj-auth-rest 和 social-auth-app-django 之间的区别
dj-auth-rest 和 social-auth-app-django 都是用于在 Django 项目中促进身份验证的库,但它们满足不同的需求并且操作方式不同
`dj-auth-rest` 用于基于 API 的项目,而 `social-auth-app-django` 用于基于 Web 的项目,两者都可以在同一个项目中使用
结论
将 GitHub OAuth 集成到您的 Django 应用程序中,为个人使用他们的 GitHub 凭据登录提供了一种安全且用户友好的方式。
使用本指南,您可以增强应用程序的安全性,简化登录流程,并在访问相关用户数据时改善整体用户体验。