ホームページ >バックエンド開発 >Python チュートリアル >dj-rest-auth を使用して GitHub 認証を Django プロジェクトに統合する
この記事は、安全なユーザー認証のために GitHub OAuth を実装する方法に関する簡単なガイドです。
このガイドでは次のことが可能になります
この記事を最大限に活用するには、ユーザーは以下について公正に理解する必要があります
これを 3 つの簡単な手順で実装します
GitHub アカウントの設定に移動し、開発者設定が表示されるまで下にスクロールして、以下に示すように OAuth アプリをクリックして、GitHub OAuth 認証情報を作成します。
既存のアプリがある場合は編集できます。それ以外の場合は、[新しい OAuth アプリ] をクリックして新しいアプリを作成し、アプリに明確でわかりやすい名前を付け、ホームページ URL http:/ に追加します。 /localhost:8000/ 127.0.0.1 を localhost: に置き換えることもできます。これが Django アプリを実行するように構成した場合、GitHub で設定した構成はどれも一致する必要があります。サーバーエラーがスローされないようにアプリに設定しているものを、認可コールバック URL に追加します。このコールバック URL http://localhost:8000/api/auth/github/login/callback/ 設定は、以下の画像に表示されている内容を反映する必要があります。 .
後で Django プロジェクトで使用できるように、以下に示すクライアント ID とクライアント シークレットをコピーして保存します
その他で pip install django-allauth dj-rest-auth リクエストを実行して、これらのパッケージをインストールします。アプリの settings.py ファイルで、次のコード ブロックを
に追加します。
SOCIALACCOUNT_PROVIDERS = { 'github': { 'APP': { 'client_id': '<github_client_id>', 'secret': '<github_secret_keys>', '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 ファイルで行う必要があります
すべて完了しましたか?エンドポイント http://localhost:8000/api/auth/github/login/ にアクセスすると、次のようなページにリダイレクトされます 。「続行」ボタンをクリックすると、GitHub の認証ページにリダイレクトされるはずです
認証が成功すると、http://localhost:8000/accounts/profile/ にリダイレクトされ、404 エラー ページが表示されます。
これを修正するには、アプリの urls.py ファイルにエンドポイント /accounts/profile を作成し、そのエンドポイントの相対ビューを作成します。エンドポイントとビューが正しく設定されている場合は、404 エラー ページ
の代わりにこれが表示されるはずです。dj-auth-rest と social-auth-app-django はどちらも Django プロジェクトでの認証を容易にするために使用されるライブラリですが、異なるニーズに対応し、異なる動作をします
dj-auth-rest は API ベースのプロジェクトに使用され、social-auth-app-django は Web ベースのプロジェクトに使用され、両方を同じプロジェクトで使用できます
GitHub OAuth を Django アプリケーションに統合すると、個人が GitHub 資格情報を使用してログインできる安全でユーザー フレンドリーな方法が提供されます。
このガイドを使用すると、アプリケーションのセキュリティを強化し、ログイン プロセスを合理化し、関連するユーザー データにアクセスする際の全体的なユーザー エクスペリエンスを向上させることができます。
以上がdj-rest-auth を使用して GitHub 認証を Django プロジェクトに統合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。