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

DjangoでGitHubOAuthを有効にする


多くの開発者のWebサイトで、非常に便利なGitHubソーシャル認証を見ることができます。この記事では、DjangoWebサイトにGithubAuthを追加する方法を説明します。

https://github.com/settings/developers/にアクセスし、Oauthアプリケーションを作成して、これら2つのURLを追加します

  • https://127.0.0.1:8000/

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

次に、クライアントIDと秘密鍵を取得します。それでは、コーディングの部分に移りましょう。

django-allauthをインストールします ライブラリ-

pip install django-allauth

settings.py内 次のコード行を追加します-

INSTALLED_APPS = [
   ##################
#
#
#
#

   'django.contrib.sites',
   'allauth',
   'allauth.account',
   'allauth.socialaccount',
   'allauth.socialaccount.providers.github',
   'githubAuthentication'
]

SITE_ID = 1
AUTHENTICATION_BACKENDS= [
   'django.contrib.auth.backends.ModelBackend',
   'allauth.account.auth_backends.AuthenticationBackend'
]

LOGIN_REDIRECT_URL="https://github.com"

nインストール済みのアプリ、必要なインポートライブラリを追加してから、GitHubのデフォルトの認証バックエンドを追加しました。また、ログイン時にリダイレクトする場所を示すリダイレクトURLを有効にしました。

urls.py内 プロジェクトルートの-

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

urlpatterns = [
   path('admin/', admin.site.urls),

   # this is module path copy this as it is
path('accounts/', include('allauth.urls')),

# this is my app path
path('', include("githubAuthentication.urls"))
]

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

次に、http:// localhost:8000 / adminに移動し、ソーシャルアプリケーションに移動します。

そして、アプリケーションを追加します-

DjangoでGitHubOAuthを有効にする

クライアントIDを貼り付けます および秘密鍵 以前にコピーしたもので、名前はアプリケーション名である必要があります。プロバイダーgithub。を選択してください。

サイト セクションで、 example.comをクリックします 次に、矢印キーをクリックして[保存]をクリックします。これにより、 githubが登録されます Djangoプロジェクトで認証バックエンドとして使用します。

次に、 home.htmlを作成します テンプレートで フォルダを作成し、次の行を追加します-

<!DOCTYPE html>
<html>
   <head>
      <title>tut</title>
    </head>
    <body>
      {% load socialaccount %}
      {% providers_media_js %}
<a href="{% provider_login_url 'github' method='js_sdk' %}?n
ext=https://github.com">login with github</a>
   </body>
</html>

ここでは、JSをレンダリングし、 allauthをロードしました。 フロントエンドのライブラリ。 で デフォルトのgithubログインページを設定するgithubログインページを提供しました。

view.pyで −

from django.shortcuts import render

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

ここでフロントエンドをレンダリングしました

urls.py内 (アプリのURL)-

from django.urls import path,include
from . import views
urlpatterns = [
   path('',views.home, name="Home" ),

]

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

すべてが完了したので、出力の確認に進むことができます。

出力


DjangoでGitHubOAuthを有効にする


  1. Djangoのモデルインスタンスに翻訳を追加する

    この記事では、任意のインスタンスの翻訳を作成する方法を学習します。 ID、名前、引用符、行などのデータを保存する必要がある場合があります。そのデータを異なる言語でレンダリングする必要がある場合があります。そのためには、多くのデータベース処理を行う必要がありますが、今日は、ほんの数行のセットアップで同じ結果を得る方法を紹介します。 Djangoプロジェクトとアプリを作成します。 URLを設定する INSTALLED_APPSにアプリを追加するなどの基本的な操作を行います。 モデルを作成します。ここでは、 views.py、urls.pyとはあまり関係がありません。 または任意のhtmlフ

  2. DjangoでMoneyフィールドを追加するにはどうすればよいですか?

    場合によっては、給与、手数料、収入など、お金に関連するデータをWebサイトに追加する必要があります。 Djangoは整数フィールドを提供しますが、多くの場合、それは私たちが望むようには機能しません。したがって、お金のフィールドを処理するために、モデルにお金のフィールドを追加する3番目のパッケージライブラリを使用できます。 プロジェクトとアプリを作成し、 MoneyFieldDemoという名前を付けました およびmyapp。 URLなどの基本的な設定を行います およびINSTALLED_APPS。 はい、ライブラリをインストールします- pip install django-mone