ホームページ >バックエンド開発 >Python チュートリアル >dj-rest-auth を使用して GitHub 認証を Django プロジェクトに統合する

dj-rest-auth を使用して GitHub 認証を Django プロジェクトに統合する

Susan Sarandon
Susan Sarandonオリジナル
2024-11-22 02:27:11492ブラウズ

この記事は、安全なユーザー認証のために GitHub OAuth を実装する方法に関する簡単なガイドです。

このガイドでは次のことが可能になります

  • GitHub 認証情報を使用してユーザーをシームレスに作成またはログインします
  • 後で使用できるようにユーザー認証情報を保存します

前提条件

この記事を最大限に活用するには、ユーザーは以下について公正に理解する必要があります

  • GitHub
  • ジャンゴ
  • Django レスト フレームワーク

これを 3 つの簡単な手順で実装します

  • 1. GitHub をセットアップします
  • 2. Django をセットアップします
  • 3.テスト認証エンドポイント

1.GitHubのセットアップ

GitHub アカウントの設定に移動し、開発者設定が表示されるまで下にスクロールして、以下に示すように OAuth アプリをクリックして、GitHub OAuth 認証情報を作成します。
Using dj-rest-auth to integrate GitHub authentication in your Django project既存のアプリがある場合は編集できます。それ以外の場合は、[新しい OAuth アプリ] をクリックして新しいアプリを作成し、アプリに明確でわかりやすい名前を付け、ホームページ URL http:/ に追加します。 /localhost:8000/ 127.0.0.1 を localhost: に置き換えることもできます。これが Django アプリを実行するように構成した場合、GitHub で設定した構成はどれも一致する必要があります。サーバーエラーがスローされないようにアプリに設定しているものを、認可コールバック URL に追加します。このコールバック URL http://localhost:8000/api/auth/github/login/callback/ 設定は、以下の画像に表示されている内容を反映する必要があります。 .
Using dj-rest-auth to integrate GitHub authentication in your Django project後で Django プロジェクトで使用できるように、以下に示すクライアント ID とクライアント シークレットをコピーして保存します Using dj-rest-auth to integrate GitHub authentication in your Django project

2. ジャンゴのセットアップ

その他で 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 ファイルで行う必要があります

3. 認証エンドポイントのテスト

すべて完了しましたか?エンドポイント http://localhost:8000/api/auth/github/login/ にアクセスすると、次のようなページにリダイレクトされます Using dj-rest-auth to integrate GitHub authentication in your Django project。「続行」ボタンをクリックすると、GitHub の認証ページにリダイレクトされるはずです Using dj-rest-auth to integrate GitHub authentication in your Django project

追加の考慮事項

認証が成功すると、http://localhost:8000/accounts/profile/ にリダイレクトされ、404 エラー ページが表示されます。 Using dj-rest-auth to integrate GitHub authentication in your Django project

これを修正するには、アプリの urls.py ファイルにエンドポイント /accounts/profile を作成し、そのエンドポイントの相対ビューを作成します。エンドポイントとビューが正しく設定されている場合は、404 エラー ページ Using dj-rest-auth to integrate GitHub authentication in your Django project

の代わりにこれが表示されるはずです。

dj-auth-rest と social-auth-app-django の違い

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。