Django 中的 Google 身份验证


在许多开发者网站上,我们都能看到 Google 社交身份验证,这非常方便。在本文中,我们将了解如何创建一个 Django Google 登录项目。

  • 然后,选择 Web 应用程序,并添加以下两个 URL:

现在,您将获得一个客户端 ID 和一个密钥,请将它们安全地保存在您的文件中。

示例

创建一个 Django 项目和一个应用程序。

在 **settings.py** 中:

SITE_ID = 1
LOGIN_REDIRECT_URL = "/"

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   "django.contrib.sites", # <--
   "allauth", # <--
   "allauth.account", # <--
   "allauth.socialaccount", # <--
   "allauth.socialaccount.providers.google",
   "googleauthentication" #this is my app name ,you can name your app anything you want
]
SOCIALACCOUNT_PROVIDERS = {
   'google': {
      'SCOPE': [
         'profile',
         'email',
      ],
      'AUTH_PARAMS': {
         'access_type': 'online',
      }
   }
}

#add this in the end of file
AUTHENTICATION_BACKENDS = (
   "django.contrib.auth.backends.ModelBackend",
   "allauth.account.auth_backends.AuthenticationBackend",
)

在这里,我们定义了一个重定向 URL。在 INSTALLED_APPS 中,我们定义了我们将用于身份验证的重要后端。然后,我们定义了社交账户提供商,它将告诉我们应该使用什么进行登录(这里我们使用 Google)。我们还定义了它应该存储用户的哪些数据。

现在,在项目的 **urls.py** 中,添加以下内容:

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
   path('admin/', admin.site.urls),
   path("accounts/", include("allauth.urls")), #most important
   path('',include("googleauthentication.urls")) #my app urls
]

在这里,我们添加了需要添加的默认路径;它是 allauth 库路径,用于启用 Google 登录。第二个是我们创建的应用程序路径。

在应用程序的 **urls.py** 中:

from django.urls import path
from . import views
urlpatterns = [
   path('',views.home),
]

在这里,我们设置了我们的 **urls** 并将我们的视图渲染到主页 url 上。

在 **views.py** 中:

from django.shortcuts import render

# Create your views here.
def home(request):
   return render(request,'home.html')

我们只是在这里渲染了前端。

在应用程序的主目录中创建一个 **templates** 文件夹,并添加一个名为 **home.html** 的文件,内容如下:

<!DOCTYPE html>
<html>
   <head>
      <title>Google Registration</title>
   </head>
   <body>
      {% load socialaccount %}
      <h1>My Google Login Project</h1>
      <a href="{% provider_login_url 'google'%}?next=/">Login with Google</a>
   </body>
</html>

在这里,我们渲染了 JS 并加载了 **allauth** 库到前端。在 **<a>** 中,我们提供了 Google 登录页面,在该页面上我们设置了我们的默认 Google 登录页面。

现在,在终端上运行以下命令:

python manage.py makemigrations
python manage.py migrate

接下来,创建一个 **超级用户**。

python manage.py createsuperuser

然后,启动服务器并转到管理面板。转到站点并添加一个具有 url 名称和显示名称的站点:http://127.0.0.1:8000

转到社交应用程序并添加应用程序。选择您之前添加的站点:

这将在您的 Django 项目中注册 Google 作为身份验证后端。一切设置就绪,现在您可以继续检查输出。

输出

更新于: 2021-08-26

2K+ 阅读量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告