「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Django をマスターする: 安全なユーザー認証 API をゼロから構築する

Django をマスターする: 安全なユーザー認証 API をゼロから構築する

2024 年 8 月 31 日に公開
ブラウズ:264

``## 4日目
#100daysofMiva コーディング チャレンジが始まってからすでに 4 日が経過しました。 ???

? Django の詳細: 安全なユーザー認証 API を最初から構築する!

Django スキルを 次のレベル に引き上げる準備はできていますか? ?このチュートリアルでは、Django を使用して堅牢なユーザー認証 API を作成する方法を説明します。経験豊富な開発者であっても、初心者であっても、このステップバイステップのガイドでは、ユーザー登録、ログイン、トークンベースの認証のセットアップについて説明します。

このセッションが終わるまでに、:

の方法をしっかりと理解できるようになります。
  1. Django プロジェクトをセットアップし、必須パッケージを構成する
  2. ユーザー データのシリアライザーを作成およびカスタマイズする
  3. ユーザー登録と認証を処理するビューを構築
  4. 安全な API アクセスのためのトークンベースの認証の実装
  5. 私たちと一緒に空白のキャンバスを強力な認証システムに変換し、Django の旅の新たな可能性を解き放ちましょう! ??

コーディングを始めましょう! ?✨

Mastering Django: Building a Secure User Authentication API from Scratch

ステップ 1: Django 環境をセットアップします。

これを行うには、python がインストールされている必要があります。次を実行して、Pythonインストールされている ことを確認します。
macOS/Linux: 多くの場合、Python はプリインストールされています。次を実行して確認できます:

Mastering Django: Building a Secure User Authentication API from Scratch または

Mastering Django: Building a Secure User Authentication API from Scratch 必要に応じて、Homebrew (macOS) またはパッケージ マネージャー (Linux) 経由で Python をインストールします:

Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

    python.org から Python をダウンロードしてインストールします。
  • インストール中に Python を PATH に追加するには、必ずチェックボックスをオンにしてください。
ステップ 2. 仮想環境をセットアップする:

macOS/Linux:

仮想環境を作成してアクティブ化します:

Mastering Django: Building a Secure User Authentication API from Scratch

Windows:

仮想環境を作成してアクティブ化します:

Mastering Django: Building a Secure User Authentication API from Scratch

ステップ 3. Django とパッケージをインストールする

それでは、パッケージのないフレームワークとは何でしょうか?...必要なパッケージをインストールしましょう。?

仮想環境がアクティブ化されている場合、Django と追加のパッケージをインストールするコマンドはすべてのオペレーティング システムで同じです:

Mastering Django: Building a Secure User Authentication API from Scratch 説明:
`

  1. djangorestframework: これは、Django で Web API を構築するための強力で柔軟なツールキットです。
  2. djangorestframework-simplejwt: このパッケージは、安全な API 認証に一般的に使用される JSON Web Token (JWT) 認証を提供します。
ステップ 4. Django プロジェクトを作成して構成する

macOS/Linux/Windows:

Django プロジェクトとアプリを作成する:

Mastering Django: Building a Secure User Authentication API from Scratch 必要なことを単純化しましょう:

  1. startproject1: このコマンドは、新しい Django プロジェクトを作成します。プロジェクトは、データベース構成、Django 固有のオプション、アプリケーション固有の設定など、Django インスタンスの設定のコレクションです。
  2. startapp: これにより、プロジェクト内に新しいアプリが作成されます。アプリは、特定の機能 (ユーザー管理など) を処理するプロジェクトのコンポーネントです。
ステップ 5. プロジェクト設定を更新する

すべての OS:

アプリとインストールされているパッケージを含めるように settings.py を変更します。

ファイル: auth_project/settings.py

Mastering Django: Building a Secure User Authentication API from Scratch

説明しましょうか?:

INSTALLED_APPS: ここでアプリとサードパーティのパッケージを登録します。ここでは、API 機能用のrest_framework、JWT 認証用のrest_framework_simplejwt、およびユーザー関連のタスクを管理するためのユーザー (作成したアプリ) を追加します。

一度にすべての手順を知らなくても問題ありません...練習するだけで、正しく理解できるようになります

フォローしていただければ幸いです...難しいことではありません、複雑ですか?

(それがうまくいったかどうかはわかりません?)...

次に進みます...?

ここからはみんなに注目してください?

ステップ 6. シリアライザーの作成

ファイル: users/serializers.py

Mastering Django: Building a Secure User Authentication API from Scratch

説明:

    **シリアライザー**: Django REST フレームワークでは、シリアライザーは複雑なデータ型 (Django モデルなど) を JSON に変換する、またはその逆に変換するために使用されます。
  1. **RegisterSerializer**: このカスタム シリアライザーはユーザー登録を処理します。ユーザー名、パスワード、電子メールなどのフィールドが含まれます。
  2. **validate_password**: パスワードが特定のセキュリティ基準を満たしていることを確認します。
  3. **検証メソッド**: 2 つのパスワード フィールドが一致するかどうかを確認するためのカスタム検証。
  4. **create** メソッド: このメソッドは、新しいユーザーの作成と保存を担当します。
ステップ 7: ビューの作成

ファイル: users/views.py

Mastering Django: Building a Secure User Authentication API from Scratch 説明:

    **ビュー**: Django では、ビューはユーザー リクエストを処理するためのロジックを処理します。
  1. **RegisterView**: このビューはユーザー登録を処理します。
  2. **CreateAPIView**: 新しいレコードの作成を処理するための組み込みビュー。ここでは、新しいユーザーを作成するために使用されます。
  3. **permission_classes**:AllowAny は、このエンドポイントが誰でも (認証されていないユーザーも含めて) アクセスできることを意味します。これは登録に必要です。
ステップ 8: URL のセットアップ

ファイル: users/urls.py

このコードはアプリの URL
に記述されています

Mastering Django: Building a Secure User Authentication API from Scratch

説明:

URL パターン: これらはビューにマップするパスを定義します。

**register/**: この URL はユーザー登録を処理します。

次に、プロジェクトのファイルに移動します: **auth_project/urls.py**

これを入力してください...?

Mastering Django: Building a Secure User Authentication API from Scratch

説明:

    **include('users.urls')**: これにはユーザー アプリの URL が含まれます。
  1. JWT ビュー: TokenObtainPairView: このビューは、アクセス トークンとリフレッシュ トークンのペアを返します。 TokenRefreshView: このビューにより、クライアントはリフレッシュ トークンを使用してアクセス トークンをリフレッシュできます。
  2. **TokenObtainPairView**: このビューは、アクセス トークンとリフレッシュ トークンのペアを返します。
  3. **TokenRefreshView**: このビューにより、クライアントはリフレッシュ トークンを使用してアクセス トークンをリフレッシュできます。
次までここでゆっくり休んでもいいですか?...ここからはプレッシャーはありませんよ、ふふ...

ステップ 9: 移行の実行

指示:

Mastering Django: Building a Secure User Authentication API from Scratch

これを行う機能/目的は、プロジェクトで定義したモデルとフィールドに基づいてデータベース スキーマに変更を適用することです。上で調整したものは?

言い換えれば、プロジェクトを最新の状態に保ちます

ステップ 10: サーバーの実行とテスト

指示:

Mastering Django: Building a Secure User Authentication API from Scratch

このコマンドは Django 開発サーバーを起動し、プロジェクトがローカルでアクセスできるようにします。 (あなたのローカルポート)

さて、これまでに何をしたか見てみましょう...

Postman または cURL を使用したテスト (この拡張機能は IDE からダウンロードできます)

郵便配達員の使用

  1. Postman (または任意の API テスト ツール) を開きます。

  2. 新しいリクエストを設定します

    1. URL: http://127.0.0.1:8000/api/auth/register/
  • 2.メソッド: POST
  1. [本文] タブで、生の形式と JSON 形式を選択します。

  2. 次の JSON データを入力します:

    体:

Mastering Django: Building a Secure User Authentication API from Scratch

    [送信]をクリックします。
この部分に関しては、Django-Rest フレームワークはフレンドリーなユーザー インターフェイスを備えているため、他のフレームワークよりも簡単にナビゲートできます

成功すると、HTTP ステータス コード 201 Created の応答と、ユーザー データを含む JSON 応答を受け取るはずです。

トークン認証エンドポイントをテストする

JWT 認証が機能していることを確認するには、トークン エンドポイントをテストします。

郵便配達員の使用:

    新しいリクエストを設定します: メソッド: POST URL: http://127.0.0.1:8000/api/token/
  1. [本文]タブで、raw 形式と JSON 形式を選択します。
  2. 次の JSON データを入力します

Mastering Django: Building a Secure User Authentication API from Scratch

4、[送信]をクリックします。

アクセス トークンとリフレッシュ トークンを含む JSON 応答を受信するはずです:

Mastering Django: Building a Secure User Authentication API from Scratch

**

トラブルシューティングのヒント

**

サーバーが起動していません: 正しいディレクトリにいて、仮想環境がアクティブ化されていることを確認してください。
エンドポイント エラー: URL パスを再確認し、Django アプリが URL で正しく設定されていることを確認してください。
無効な応答: API エンドポイントとシリアライザーが正しく構成されていることを確認してください。
これらの手順に従うことで、Django 開発サーバーを正常に実行し、登録エンドポイントをテストし、トークンベースの認証を検証できるようになります。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/mayowakalejaiye/mastering-django-building-a-secure-user-authentication-api-from-scratch-4ma3?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>
  • プロキシ設計パターン
    プロキシ設計パターン
    以前のブログでは、オブジェクト作成メカニズムを扱うさまざまな作成デザイン パターンを検討しました。ここで、構造設計パターンについて詳しく見ていきましょう。オブジェクトとクラスを柔軟かつ効率的に保ちながら、より大きな構造を形成するためにどのように構成されるかに焦点を当てます。プロキシ設計パターンから始...
    プログラミング 2024 年 11 月 6 日に公開
  • 「src」属性を使用して外部 JavaScript ファイルにインライン スクリプトを埋め込むことができますか?
    「src」属性を使用して外部 JavaScript ファイルにインライン スクリプトを埋め込むことができますか?
    SRC 属性を使用して外部 JavaScript ファイルにインライン スクリプトを埋め込むことはできますか?JavaScript は通常、外部スクリプト ファイルを使用して組み込まれますが、よくある質問: src 属性を使用して、インライン スクリプトを外部ファイル内に組み込むことができますか?H...
    プログラミング 2024 年 11 月 6 日に公開
  • Go で HTTP POST リクエストの進行状況を追跡する方法は?
    Go で HTTP POST リクエストの進行状況を追跡する方法は?
    Go での HTTP POST リクエストの進行状況の追跡POST リクエスト経由で大きなファイルや画像を送信する場合、開発者はアップロードの進行状況を追跡する際に課題に直面することがよくあります。 。この質問では、Go アプリケーションでそのようなリクエストの進行状況を監視するための信頼できる方法...
    プログラミング 2024 年 11 月 6 日に公開
  • Java でフォルダーからファイル名のリストを取得するにはどうすればよいですか?
    Java でフォルダーからファイル名のリストを取得するにはどうすればよいですか?
    Java を使用してフォルダー内のファイル名を取得するディレクトリ内のファイル名のリストを取得するタスクは、さまざまな環境で共通の要件です。プログラミングシナリオ。 Java でこれを実現するには、File クラスを利用する簡単なアプローチがあります。コード アプローチ:まず、目的のディレクトリ パ...
    プログラミング 2024 年 11 月 6 日に公開
  • Angular Pipes: 包括的なガイド
    Angular Pipes: 包括的なガイド
    Angular の Pipes は、基になるデータを変更せずにテンプレート内のデータを変換するために使用される単純な関数です。パイプは値を受け取り、それを処理し、フォーマットされた出力または変換された出力を返します。これらは、日付、数値、文字列、さらには配列やオブジェクトの書式設定によく使用されます...
    プログラミング 2024 年 11 月 6 日に公開
  • Tailwind CSS とダークモード
    Tailwind CSS とダークモード
    この記事では、Tailwind CSS で ダーク モードを実装する方法を検討します。ダーク モードは、暗い環境でも優れたユーザー エクスペリエンスを提供し、目の疲れを軽減するため、人気のデザイン トレンドになっています。 Tailwind では、組み込みユーティリティを使用してダーク モードを簡単...
    プログラミング 2024 年 11 月 6 日に公開
  • CakePHP の Find メソッドを使用して JOIN クエリを実行するにはどうすればよいですか?
    CakePHP の Find メソッドを使用して JOIN クエリを実行するにはどうすればよいですか?
    JOIN を使用した CakePHP の Find メソッドCakePHP の find メソッドは、テーブルの結合など、データベースからデータを取得する強力な方法を提供します。この記事では、CakePHP の find メソッドを使用して JOIN クエリを実行する 2 つの方法を説明します。方法...
    プログラミング 2024 年 11 月 6 日に公開
  • 結果を再計算したり保存したりせずに、Python でジェネレーターを再利用するにはどうすればよいですか?
    結果を再計算したり保存したりせずに、Python でジェネレーターを再利用するにはどうすればよいですか?
    リセットによる Python でのジェネレーターの再利用Python では、ジェネレーターは要素のシーケンスを反復処理するための強力なツールです。ただし、反復が開始されると、ジェネレーターを巻き戻すことはできません。ジェネレーターを複数回再利用する必要がある場合、これが問題になる可能性があります。ジ...
    プログラミング 2024 年 11 月 6 日に公開
  • JavaScript 開発者向けのトップ S コード拡張機能
    JavaScript 開発者向けのトップ S コード拡張機能
    JavaScript は急速に進化しており、JavaScript を取り巻くツールのエコシステムも急速に進化しています。 開発者は、ワークフローをできるだけ効率的かつスムーズにしたいと考えています。そこで Visual Studio Code (VS Code) が登場します。 JavaScript...
    プログラミング 2024 年 11 月 6 日に公開
  • 計算結果を表示するための HTML 出力タグの使用方法。
    計算結果を表示するための HTML 出力タグの使用方法。
    おかえり!みんなが週末を楽しんだことを願っています。今日は、HTML タグに戻り、 タグに焦点を当てましょう。 タグとは何ですか? タグは計算結果を表示するために使用します。これはインライン要素であり、、、またはその他のインライン要素内に配置できます。これは、計算の結果を表示したり、...
    プログラミング 2024 年 11 月 6 日に公開
  • Java : 変数、データ型、入出力について理解する
    Java : 変数、データ型、入出力について理解する
    導入: Java は世界で最も人気があり多用途なプログラミング言語の 1 つで、Web アプリケーションからモバイル アプリケーションまであらゆるものに使用されています。 Java への取り組みを開始する場合は、基本を理解することが不可欠です。このガイドでは、Java プログラムの...
    プログラミング 2024 年 11 月 6 日に公開
  • 高さに基づいて Div のアスペクト比を維持するにはどうすればよいですか?
    高さに基づいて Div のアスペクト比を維持するにはどうすればよいですか?
    高さに基づいて Div のアスペクト比を維持するWeb デザインでは、要素のアスペクト比を制御することがレスポンシブ レイアウトにとって重要です。この質問では、div の幅をその高さのパーセンテージとして維持し、高さが変化しても要素の形状が一貫していることを保証する方法を検討します。従来のアプローチ...
    プログラミング 2024 年 11 月 6 日に公開
  • Flet での DatePicker の処理
    Flet での DatePicker の処理
    DatePicker の実装をリクエストするためのプロジェクトです。 Flet の公式ドキュメントを参照してください。 import datetime import flet as ft def main(page: ft.Page): page.horizontal_alignment =...
    プログラミング 2024 年 11 月 6 日に公開
  • 円形の SVG マスクに合わせて画像のサイズを変更するにはどうすればよいですか?
    円形の SVG マスクに合わせて画像のサイズを変更するにはどうすればよいですか?
    円形の SVG パスに合わせて画像のサイズを変更するSVG パスを使用して画像から円形の部分を切り取る場合、次のことが重要です。適切な位置合わせを確保するために。画像がうまくフィットしない場合は、SVG マスクのサイズまたは位置が間違っていることが原因である可能性があります。望ましい結果を達成するた...
    プログラミング 2024 年 11 月 6 日に公開
  • 技術面接の質問 - パート タイプスクリプト
    技術面接の質問 - パート タイプスクリプト
    Introduction Hello, hello!! :D Hope you’re all doing well! How we’re really feeling: I’m back with the second part of this series. ? In this...
    プログラミング 2024 年 11 月 6 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3