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

ビューなしのトークン認証にDjangoでdjoserを使用する


ジェセル Django用のシンプルな認証ライブラリです。認証用のトークンを生成するために使用されます。この生成されたトークンは、ユーザー名、メールの3つのフィールドを使用して生成されます。 およびパスワード。 POSTリクエストでのみ機能しますが、フロントエンドを追加できます。

Djangoプロジェクトとアプリを作成します。 「DjoserExample」という名前を付けました および"myapp"

2つのパッケージをインストールする-

pip install djoser
pip install djangorestframework

settings.py 次の行を追加します-

INSTALLED_APPS = [
#below every other apps
   'myapp',
   'rest_framework',
   'rest_framework.authtoken',
   'djoser'
]

# Below template variable
REST_FRAMEWORK = {
   'DEFAULT_AUTHENTICATION_CLASSES': (
      'rest_framework.authentication.TokenAuthentication',
   ),
   'DEFAULT_PERMISSION_CLASSES': [
      'rest_framework.permissions.IsAuthenticated',
   ]
}
DJOSER = {
   "USER_ID_FIELD": "username"
}

ここにジェセルを追加しました およびレストフレームワーク アプリとして。次に、RESTフレームワークの認証バックエンドとdjoserを追加しました。 ユーザーIDを追加しました フィールド(つまり、インデックスフィールド)。

Djangoのデフォルトのユーザー認証データベースを使用しているため、実際にはアプリは必要ありません。

プロジェクトのurls.pyに移動します 次の行を追加します-

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

urlpatterns = [
   path('admin/', admin.site.urls),
   path('',include('myapp.urls')),
   path(r'api/v1/', include('djoser.urls')),
   path(r'api/v1/token/login, include('djoser.urls.authtoken'))
]

ここでは、 djoser admin urlを定義しました 次に、djoser認証バックエンド。

これで、すべてが設定されました。次に、ターミナルでこれらのコマンドを実行し、出力を確認します-

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

出力

https://127.0.0.1:8000/api/v1/users/ −

ビューなしのトークン認証にDjangoでdjoserを使用する

ここでユーザーを作成します。

https://127.0.0.1:8000/api/v1/token/login-

ビューなしのトークン認証にDjangoでdjoserを使用する

ここでは、ユーザー名とパスワードを入力して、ユーザーのトークンを生成します。


  1. デバッグ用のターミナルでのDjangoクエリ数

    この記事では、Djangoのライブラリを使用して、デバッグに使用できるターミナルのデータベースクエリ数の簡単なレポートを確認します。モデルオブジェクトのすべてのヒットの簡単な表形式のレポートを提供し、読み取りか書き込みかに関係なく、すべてのヒットに出力します。また、応答と要求も計算します。 例 アプリやURLの設定などの基本的な操作を行います。 django-querycountをインストールします モジュール- pip install django-querycount settings.py内 、これを追加- MIDDLEWARE += [    '

  2. ループを使用しない印刷番号シリーズのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 − 2つの数NとKが与えられた場合、問題は、数(N)がゼロ(0)より大きくなるまでNから数Kを引くことです。Nが負またはゼロになると、その数が元の番号(N)。 たとえば、 N = 10 K = 4 Output will be: 10 6 2 -2 2 6 10 アルゴリズム 1. we call the function again and again until N is greater than zero (in every function    call we subtra