编码员你好!
本文提到了Datta Able的最新功能,这是一个由Django驱动的开源种子项目。该项目已经更新,提供了使用Github的OAuth登录,一个持久的黑暗模式(UI改进),以及在Docker中更快的执行。对于新人来说,Django是一个强大的后端框架,用来在短时间内编码安全和强大的全栈应用程序。谢谢你的阅读!
- 👉Datta Able Django- 产品页面
- 👉Datta Able Django- 现场演示
- 🚀 对注册用户的免费支持
在现有的网络应用中加入OAuth登录,可以提高安全性,也可以引导注册过程。
在Youtube上发布的这个简短的视频中,我们可以直观地看到最新的发展。
✨ 如何使用该产品
作为一个开源的启动器,使用或玩弄代码的最快方式是访问公共仓库(可在GitHub上找到)或使用GIT命令行工具来克隆源代码。一旦下载了源代码,Django Datta Able就可以通过Docker(使用单行)或使用经典的手动构建启动。
这一次,将使用Docker设置,如项目README中介绍的那样。
👉第1步- 从GH仓库下载代码(使用GIT)。
$ git clone https://github.com/app-generator/django-datta-able.git
$ cd django-datta-able
👉第2步- 启动APP在
Docker
$ docker-compose up --build
上述命令完成后,我们应该能够在浏览器中访问该应用程序。
✨ OAuth for GitHub
如果在.env 文件中提供了Github secrets (GITHUB_ID,GITHUB_SECRET),该功能会在登录页面自动启用。如果秘密是有效的,登录页面会在登录卡上显示一个GitHub图标,告知用户这个登录选项是可用的。
# Sample '.env' file (truncated content)
# True for development, False for production
DEBUG=True
...
# If present, the SignIN exposes the Github Login Button
GITHUB_ID= SOME_GH_ID_HERE
GITHUB_SECRET= SOME_GH_SECRET_HERE
在用户界面中的效果突出显示如下。
✨ 如何在Django项目中添加OAuth
如果有人发现这个功能很有用,并想更新现有的应用程序,以下是步骤。
👉 Step #1 - Update dependencies to include
Django-AllAuth
$ pip install django-allauth
为了持久性,该模块也应该包含在requirements.txt 文件中。
👉 第2步 - 更新项目设置以包括Allauth模块
# core/settings.py (truncated content)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'allauth', # OAuth new
'allauth.account', # OAuth new
'allauth.socialaccount', # OAuth new
'allauth.socialaccount.providers.github', # OAuth new
'allauth.socialaccount.providers.twitter' # OAuth new
]
👉 第三步 - 添加相关设置(文件底部)
# core/settings.py (truncated content)
AUTHENTICATION_BACKENDS = (
"allauth.account.auth_backends.AuthenticationBackend",
)
SITE_ID = 1
所有这些设置都是AllAuth library 所要求的。
👉 第四步 - 包括路由提供的
AppAuth
对于Django Datta Able这个更新是在authentication/urls.py中进行的。
# apps/authentication/urls.py (truncated content)
urlpatterns = [
path('login/', login_view, name="login"),
path('register/', register_user, name="register"),
path("logout/", LogoutView.as_view(), name="logout"),
path('social_login/', include('allauth.urls')), # OAuth new
]
👉 第5步 - 更新应用设置,从Github上读取机密信息。
.env
# core/settings.py (truncated content)
GITHUB_ID = os.getenv('GITHUB_ID', None)
GITHUB_SECRET = os.getenv('GITHUB_SECRET', None)
GITHUB_AUTH = GITHUB_SECRET is not None and GITHUB_ID is not None
👉 第6步 - 更新签到页面
{% if GITHUB_AUTH %}
<div class="mx-2">
<form method="post" action="/social_login/github/login/?next=%2F">
{% csrf_token %}
<button class="btn btn-light" type="submit" >
<i class="feather icon-github auth-icon"></i></button>
</form>
<span class="mx-1">Sign IN with GitHub</span>
</div>
{% endif %}
在这一点上,最后一步是迁移数据库,测试OAuth流程(registration,logout )。
谢谢你的阅读!如需更多资源和支持,请访问。
- 🚀Datta Able Django- 产品页面
- ✨ 寻求支持或下载免费启动器


