Python
 Computer >> コンピューター >  >> プログラミング >> Python

DjangoでのGoogle認証


多くの開発者のWebサイトで、非常に便利なGoogleソーシャル認証を見ることができます。この記事では、DjangoGoogleログインプロジェクトを作成する方法を説明します。

  • まず、https://console.cloud.google.com/apis/dashboardにアクセスして、プロジェクトを作成します。

  • Oauth同意画面に移動し、画面を作成して保存して続行します。

  • クレデンシャルに移動し、[クレデンシャルの作成]、[OAuthクライアントID]の順にクリックします。

  • 次に、Webアプリケーションを選択し、これら2つのURLを追加します-

  • https://127.0.0.1:8000/
  • https://127.0.0.1:8000/accounts/github/login/callback/

これで、クライアント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を定義しました。インストール済みアプリでは、認証に使用する重要なバックエンドを定義しました。次に、ログインに何を使用するかを指示するソーシャルアカウントプロバイダーを定義しました(ここでは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
]

ここでは、追加に必要なデフォルトのパスを追加しました。これは、Googleログインを有効にするためのallauthライブラリパスです。 2つ目は、作成したアプリパスです。

アプリのurls.py

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

ここでは、 URLを設定します ホームURLでビューをレンダリングしました。

view.pyで −

from django.shortcuts import render

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

ここでフロントエンドをレンダリングしただけです。

テンプレートを作成します アプリのメインディレクトリにあるフォルダにファイルを追加します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をロードしました フロントエンドのライブラリ。 で デフォルトのGoogleログインページを設定したGoogleログインページを提供しました。

次に、ターミナルで次のコマンドを実行します-

python manage.py makemigrations
python manage.py migrate

次に、スーパーユーザーを作成します 。

python manage.py createsuperuser

次に、サーバーを起動し、管理パネルに移動します。 [サイト]に移動し、URL名と表示名を使用してサイトを追加します:http://127.0.0.1:8000

ソーシャルアプリケーションに移動し、アプリケーションを追加します。前に追加したサイトを選択してください-

DjangoでのGoogle認証

これにより、Googleが認証バックエンドとしてDjangoプロジェクトに登録されます。すべてが設定されたので、出力の確認に進むことができます。

出力

DjangoでのGoogle認証


  1. Google Chrome がクラッシュする

    Google Chrome のクラッシュ この記事では、Google Chrome のクラッシュ、応答しない、フリーズの問題を修正する方法を紹介します。 Web ブラウザは主に、ユーザーがインターネットにアクセスできるように設計されています。 Web ブラウザーは、インターネット ブラウザーまたはブラウザーとも呼ばれます。 Microsoft Internet Explorer、Google Chrome、Mozilla Firefox、Opera &Safari など、さまざまな Web ブラウザがあります。 各ブラウザは、機能、機能、および仕様がそれぞれ異なります。 Google は、G

  2. Android での Google Play Authentication is Required エラーを修正

    Google Play ストアは、Android スマートフォンの一般的なソースの 1 つであり、ユーザーはそこからほとんどすべてのアプリやゲームをスマートフォンにダウンロードしています。目的のアプリケーションを無料または定額でダウンロードできる、最も信頼性が高く安全なアプリです。ただし、ユーザーが Play ストア アプリで Google Play authentication is required エラーに直面することがあり、Android フォンにアプリケーションをインストールできないことがあります。この記事を最後まで読んで、認証を修正する方法を学びましょう。すぐに Google アカ